mirror of
https://github.com/lucaspalomodevelop/JSSTE.git
synced 2026-03-13 07:19:37 +00:00
50 lines
881 B
JavaScript
50 lines
881 B
JavaScript
/**
|
|
* merge two JSONs
|
|
* @param {*} org
|
|
* @param {*} ext
|
|
* @returns
|
|
*/
|
|
function mergeJson(org, ext) {
|
|
|
|
if (!(typeof org === 'object' && org !== null)) {
|
|
org = JSON.parse(org);
|
|
}
|
|
if (!(typeof ext === 'object' && ext !== null)) {
|
|
ext = JSON.parse(ext);
|
|
}
|
|
|
|
Object.keys(ext).forEach(function (key) {
|
|
let value = ext[key];
|
|
|
|
if (Array.isArray(ext[key])) {
|
|
if (Array.isArray(org[key])) {
|
|
value.forEach((item) => {
|
|
org[key].push(item);
|
|
});
|
|
}
|
|
else {
|
|
org[key] = value;
|
|
}
|
|
} else {
|
|
org[key] = value;
|
|
}
|
|
});
|
|
|
|
return org;
|
|
}
|
|
|
|
/**
|
|
* Merge multiple JSONs
|
|
* @param {*} org
|
|
* @param {...any} ext
|
|
* @returns
|
|
*/
|
|
function mergeJsons(org, ...ext) {
|
|
ext.forEach((element) => {
|
|
org = mergeJson(org, element);
|
|
});
|
|
return { ...org };
|
|
}
|
|
|
|
module.exports = { mergeJson, mergeJsons };
|