UNPKG

@web3r/flowerkit

Version:

Tree-shakable JavaScript and TypeScript utility library for frontend/browser apps: DOM, events, arrays, objects, strings, date, JSON, and network helpers (ESM/CJS, SSR-friendly).

22 lines (21 loc) 1.29 kB
export type TGetMergedObjArgs = Parameters<typeof getMergedObj>; export type TGetMergedObjReturn = ReturnType<typeof getMergedObj>; /** * Gets one deeply merged object from two objects * @template TTarget,TSource * @param {TTarget} [target={}] Target object (cloned internally) * @param {TSource} [source={}] Source object * @param {{ isMergeArrays?: boolean; arrayStrategy?: "concat" | "target" | "replace" | "unique"; }} [options={}] Merge options * @param {boolean} [options.isMergeArrays=true] Concat nested arrays or keep target arrays (deprecated; use arrayStrategy) * @param {"concat"|"target"|"replace"|"unique"} [options.arrayStrategy="concat"] Array merge strategy * @returns {TTarget & TSource} Deeply merged object * @example * // How to deeply merge two objects? * const targetObj = { first: [ "foo" ] }; * const sourceObj = { first: [ "moo" ], boo: 12 }; * getMergedObj(targetObj, sourceObj) // => { first: [ "foo", "moo" ], boo: 12 } */ export declare const getMergedObj: <TTarget extends Record<string, any> = Record<string, any>, TSource extends Record<string, any> = Record<string, any>>(target?: TTarget, source?: TSource, options?: { isMergeArrays?: boolean; arrayStrategy?: "concat" | "target" | "replace" | "unique"; }) => TTarget & TSource;