@corex/deepmerge
Version:
A zero dependency object merger with typescript support and built in common merge utilities.
24 lines (23 loc) • 750 B
JavaScript
export const isObject = (obj) => {
if (typeof obj === 'object' && obj !== null) {
if (typeof Object.getPrototypeOf === 'function') {
const prototype = Object.getPrototypeOf(obj);
return prototype === Object.prototype || prototype === null;
}
return Object.prototype.toString.call(obj) === '[object Object]';
}
return false;
};
export const overwriteMerge = (_, currArr) => currArr;
export const combineMerge = (prevArr, currArr) => {
return [...new Set([...prevArr, ...currArr])];
};
export const getMergeFn = (type) => {
switch (type) {
case 'overwrite':
return overwriteMerge;
case 'combine':
default:
return combineMerge;
}
};