@dx-box/common
Version:
(DX) by providing common configurations for TypeScript, ESLint, Prettier, and automated Git hooks for formatting and linting.
2 lines (1 loc) • 399 B
JavaScript
const u=(n,a,c={})=>{if(!t(n))return a;if(!t(a))return n;const o=Array.isArray(n)?[]:{...n},i=new Set([...Object.keys(n),...Object.keys(a)]);for(const e of i){const s=n[e],r=a[e];Array.isArray(s)&&Array.isArray(r)?o[e]=c.arrayMerge?c.arrayMerge(s,r):[...s,...r]:t(s)&&t(r)?o[e]=u(s,r,c):r===void 0?o[e]=s:o[e]=r}return o},t=n=>typeof n=="object"&&n!==null&&!Array.isArray(n);export{u as deepMerge};