UNPKG

@n3okill/utils

Version:
34 lines 1.39 kB
"use strict"; /* eslint-disable @typescript-eslint/no-unsafe-assignment */ /* eslint-disable @typescript-eslint/no-unsafe-member-access */ /* eslint-disable @typescript-eslint/no-explicit-any */ Object.defineProperty(exports, "__esModule", { value: true }); exports.merge = merge; const isNullOrUndefined_1 = require("../type/isNullOrUndefined"); const isObject_1 = require("../type/isObject"); const clone_1 = require("./clone"); /** * Merge given objects into a new one, cloning the values * @param args Objects to be merged * @returns The merged and cloned object */ function merge(...args) { const target = {}; for (const obj of args) { if (!(0, isNullOrUndefined_1.isNullOrUndefined)(obj)) { for (const [key, value] of Object.entries(obj)) { // eslint-disable-next-line security/detect-object-injection if ((0, isObject_1.isObject)(value) && (0, isObject_1.isObject)(target[key])) { // eslint-disable-next-line security/detect-object-injection target[key] = merge(target[key], value); } else { // eslint-disable-next-line security/detect-object-injection target[key] = (0, clone_1.clone)(value, true); } } } } return target; } //# sourceMappingURL=merge.js.map