UNPKG

sensai

Version:

Because even AI needs a master

41 lines (40 loc) 1.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "merge", { enumerable: true, get: function() { return merge; } }); const merge = (before, toMerge)=>{ const result = { ...before }; for(const key in toMerge){ const toMergeValue = toMerge[key]; if (!(key in result)) { result[key] = toMergeValue; continue; } const beforeValue = result[key]; // Handle arrays by merging unique values if (Array.isArray(beforeValue) && Array.isArray(toMergeValue)) { const uniqueValues = new Set([ ...beforeValue, ...toMergeValue ]); result[key] = Array.from(uniqueValues); continue; } // Handle objects by recursively merging if (typeof beforeValue === "object" && beforeValue !== null && typeof toMergeValue === "object" && toMergeValue !== null && !Array.isArray(beforeValue) && !Array.isArray(toMergeValue)) { result[key] = merge(beforeValue, toMergeValue); continue; } // For primitives, the toMerge value overwrites result[key] = toMergeValue; } return result; };