UNPKG

@coursebuilder/core

Version:

Core package for Course Builder

1 lines 1.54 kB
{"version":3,"sources":["../../../src/lib/utils/merge.ts"],"sourcesContent":["// Source: https://stackoverflow.com/a/34749873/5364135\n\n/** Simple object check */\nfunction isObject(item: any): boolean {\n\treturn item && typeof item === 'object' && !Array.isArray(item)\n}\n\n/** Deep merge two objects */\nexport function merge(target: any, ...sources: any[]): any {\n\tif (!sources.length) return target\n\tconst source = sources.shift()\n\n\tif (isObject(target) && isObject(source)) {\n\t\tfor (const key in source) {\n\t\t\tif (isObject(source[key])) {\n\t\t\t\tif (!target[key]) Object.assign(target, { [key]: {} })\n\t\t\t\tmerge(target[key], source[key])\n\t\t\t} else {\n\t\t\t\tObject.assign(target, { [key]: source[key] })\n\t\t\t}\n\t\t}\n\t}\n\n\treturn merge(target, ...sources)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AAGA,SAASA,SAASC,MAAS;AAC1B,SAAOA,QAAQ,OAAOA,SAAS,YAAY,CAACC,MAAMC,QAAQF,IAAAA;AAC3D;AAFSD;AAKF,SAASI,MAAMC,WAAgBC,SAAc;AACnD,MAAI,CAACA,QAAQC;AAAQ,WAAOF;AAC5B,QAAMG,SAASF,QAAQG,MAAK;AAE5B,MAAIT,SAASK,MAAAA,KAAWL,SAASQ,MAAAA,GAAS;AACzC,eAAWE,OAAOF,QAAQ;AACzB,UAAIR,SAASQ,OAAOE,GAAAA,CAAI,GAAG;AAC1B,YAAI,CAACL,OAAOK,GAAAA;AAAMC,iBAAOC,OAAOP,QAAQ;YAAE,CAACK,GAAAA,GAAM,CAAC;UAAE,CAAA;AACpDN,cAAMC,OAAOK,GAAAA,GAAMF,OAAOE,GAAAA,CAAI;MAC/B,OAAO;AACNC,eAAOC,OAAOP,QAAQ;UAAE,CAACK,GAAAA,GAAMF,OAAOE,GAAAA;QAAK,CAAA;MAC5C;IACD;EACD;AAEA,SAAON,MAAMC,QAAAA,GAAWC,OAAAA;AACzB;AAhBgBF;","names":["isObject","item","Array","isArray","merge","target","sources","length","source","shift","key","Object","assign"]}