UNPKG

@openapi-qraft/react

Version:

OpenAPI client for React, providing type-safe requests and dynamic TanStack Query React Hooks via a modular, Proxy-based architecture.

1 lines 1.83 kB
{"version":3,"file":"shelfMerge.cjs","sources":["../../../src/lib/shelfMerge.ts"],"sourcesContent":["/**\n * Merges objects with provided depth\n * @param depth\n * @param args\n */\nexport function shelfMerge<T>(depth = 2, ...args: T[]): T {\n return args.reduce((acc, arg) => {\n if (!arg || typeof arg !== 'object') return acc;\n\n Object.entries(arg).forEach(([key, value]) => {\n if (typeof value !== 'object') {\n acc[key as never] = value as never;\n return;\n }\n\n if (Array.isArray(value)) {\n acc[key as never] = value as never;\n return;\n }\n\n if (depth > 1) {\n acc[key as never] = shelfMerge(\n depth - 1,\n acc[key as never],\n value\n ) as never;\n return;\n }\n\n acc[key as never] = value as never;\n });\n\n return acc;\n }, {} as T);\n}\n"],"names":["shelfMerge","depth","args","reduce","acc","arg","Object","entries","forEach","key","value","Array","isArray"],"mappings":";;AAAA;;;;AAIC,IACM,SAASA,UAAAA,CAAcC,QAAQ,CAAC,EAAE,GAAGC,IAAS,EAAA;AACnD,IAAA,OAAOA,IAAKC,CAAAA,MAAM,CAAC,CAACC,GAAKC,EAAAA,GAAAA,GAAAA;AACvB,QAAA,IAAI,CAACA,GAAAA,IAAO,OAAOA,GAAAA,KAAQ,UAAU,OAAOD,GAAAA,CAAAA;QAE5CE,MAAOC,CAAAA,OAAO,CAACF,GAAKG,CAAAA,CAAAA,OAAO,CAAC,CAAC,CAACC,KAAKC,KAAM,CAAA,GAAA;YACvC,IAAI,OAAOA,UAAU,QAAU,EAAA;gBAC7BN,GAAG,CAACK,IAAa,GAAGC,KAAAA,CAAAA;AACpB,gBAAA,OAAA;AACF,aAAA;YAEA,IAAIC,KAAAA,CAAMC,OAAO,CAACF,KAAQ,CAAA,EAAA;gBACxBN,GAAG,CAACK,IAAa,GAAGC,KAAAA,CAAAA;AACpB,gBAAA,OAAA;AACF,aAAA;AAEA,YAAA,IAAIT,QAAQ,CAAG,EAAA;gBACbG,GAAG,CAACK,IAAa,GAAGT,UAAAA,CAClBC,QAAQ,CACRG,EAAAA,GAAG,CAACK,GAAAA,CAAa,EACjBC,KAAAA,CAAAA,CAAAA;AAEF,gBAAA,OAAA;AACF,aAAA;YAEAN,GAAG,CAACK,IAAa,GAAGC,KAAAA,CAAAA;AACtB,SAAA,CAAA,CAAA;QAEA,OAAON,GAAAA,CAAAA;AACT,KAAA,EAAG,EAAC,CAAA,CAAA;AACN;;;;"}