UNPKG

@liqd-js/alg-object-merge

Version:
35 lines (34 loc) 1.16 kB
'use strict'; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const clone_1 = __importDefault(require("@liqd-js/clone")); function merge(obj, ...patches) { for (let data of patches) { for (let key in data) { if (data[key] === undefined) { continue; } if (data[key] === null) { delete obj[key]; } else if (data[key] instanceof String) { obj[key] = data[key]; } else if (typeof obj[key] === 'object' && typeof data[key] === 'object' && obj[key] !== null && obj[key] !== undefined && !Array.isArray(obj[key]) && !Array.isArray(data[key])) { merge(obj[key], data[key]); } else { obj[key] = (0, clone_1.default)(data[key]); } } } return obj; } function ObjectMerge(obj, ...patches) { return merge(obj, ...patches); } exports.default = ObjectMerge;