kex
Version:
Kex is a tiny library for state managenent in JavaScript projects
30 lines • 1.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const is_object_1 = require("../utils/is-object");
function applyModifiers(obj, ...resolvedModifiers) {
if (!is_object_1.isObject(obj)) {
return Object.create(null);
}
for (let resolvedModifier of resolvedModifiers) {
if (!is_object_1.isObject(resolvedModifier)) {
continue;
}
for (let key in resolvedModifier) {
if (!Object.prototype.hasOwnProperty.call(obj, key) ||
!is_object_1.isObject(obj[key]) ||
!is_object_1.isObject(resolvedModifier[key]) ||
obj[key] instanceof Date) {
if (resolvedModifier[key] === undefined) {
delete obj[key];
continue;
}
obj[key] = resolvedModifier[key];
continue;
}
applyModifiers(obj[key], resolvedModifier[key]);
}
}
return obj;
}
exports.applyModifiers = applyModifiers;
//# sourceMappingURL=apply-modifiers.js.map