utils in another file

This commit is contained in:
Klemek
2019-07-15 10:19:44 +02:00
parent 18cd4e8855
commit 9dbf33f64a
7 changed files with 174 additions and 91 deletions
+41
View File
@@ -0,0 +1,41 @@
const self = {
/**
* Merge resources by reading object keys and keeping reference value only if it's type is different from the source
* @param ref - reference object/value
* @param src - source object/value
* @returns {*}
*/
merge: (ref, src) => {
if (typeof ref !== typeof src) {
return ref;
} else if (ref.length && !src.length) {
return ref;
} else if (ref.length && src.length) {
return src;
} else if (typeof ref === 'object') {
const out = {};
Object.keys(ref).forEach((key) => out[key] = self.merge(ref[key], src[key]));
return out;
} else {
return src;
}
},
/**
* Clone any JS variable or object
* @param {*} arg
* @returns {any}
*/
ezClone: (arg) => JSON.parse(JSON.stringify(arg)),
/**
* Create a new map of the defined bounds and filling
* @param {number} w
* @param {number} h
* @param {*} fill
* @returns {any[][]}
*/
newMap: (w, h, fill) => new Array(w).fill(0).map(() => new Array(h).fill(fill))
};
module.exports = self;