UNPKG

codetrix

Version:

A lightweight lodash-style utility library

28 lines (27 loc) 815 B
/** * Deeply merges two or more objects into a single object. * * @param objects - The objects to merge. * @returns A new object with merged properties. * * @example * mergeObjects({ a: 1 }, { b: 2 }); // { a: 1, b: 2 } */ export function mergeObjects(...objects) { return objects.reduce((acc, obj) => { for (const key in obj) { if (obj.hasOwnProperty(key)) { if (typeof acc[key] === 'object' && typeof obj[key] === 'object' && !Array.isArray(acc[key]) && !Array.isArray(obj[key])) { acc[key] = mergeObjects(acc[key], obj[key]); } else { acc[key] = obj[key]; } } } return acc; }, {}); }