UNPKG

concat-merge

Version:

Recursively merge objects

51 lines (48 loc) 2.15 kB
var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __esm = (fn, res) => function() { return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; }; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: !0 }); }, __copyProps = (to, from, except, desc) => { if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod); // index.js var concat_merge_exports = {}; __export(concat_merge_exports, { default: () => concat_merge_default }); var isObject, isPlainObject, concatMerge, concatMergeAll, concat_merge_default, init_concat_merge = __esm({ "index.js"() { isObject = (v) => v !== null && typeof v == "object", isPlainObject = (v) => { if (!isObject(v)) return !1; if (!("constructor" in v)) return !0; let proto = Object.getPrototypeOf(v); return !proto || !Object.getPrototypeOf(proto); }, concatMerge = (a, b) => { a = isObject(a) ? a : {}, b = isObject(b) ? b : {}; let r = {}, keys = Object.keys(a).concat(Object.keys(b)); for (let key of keys) { let va = a[key]; if (key in b) { let vb = b[key]; Array.isArray(va) ? r[key] = Array.isArray(vb) ? va.concat(vb) : vb : isObject(va) ? r[key] = isObject(vb) ? isPlainObject(va) ? concatMerge(va, vb) : Object.assign(va, vb) : vb : r[key] = vb; } else r[key] = va; } return r; }, concatMergeAll = (...args) => args.reduce((acc, next) => concatMerge(acc, next), {}), concat_merge_default = concatMergeAll; } }); // cjs.js module.exports = (init_concat_merge(), __toCommonJS(concat_merge_exports)).default;