UNPKG

xero-hero

Version:

Heroic utilities to simplify and enable your progress with the [xero-node](https://www.npmjs.com/package/xero-node) SDK.

1 lines 988 B
{"version":3,"sources":["../../../src/common/instance/operations.ts"],"sourcesContent":["import { isObject } from 'deep-cuts';\r\n\r\nexport const deepClone = <T extends object>(instance: T): T => {\r\n if (instance && isObject(instance)) {\r\n const { constructor } = instance;\r\n // @ts-expect-error - This is not passing for TypeScript, bit will for any Xero class.\r\n const clone = new constructor();\r\n /* eslint-disable guard-for-in, functional/immutable-data */\r\n for (const key in instance) {\r\n clone[key] = deepClone(instance[key] as object);\r\n }\r\n /* eslint-enable guard-for-in, functional/immutable-data */\r\n\r\n return clone;\r\n }\r\n\r\n return instance;\r\n};\r\n"],"mappings":";AAAA,SAAS,gBAAgB;AAElB,IAAM,YAAY,CAAmB,aAAmB;AAC7D,MAAI,YAAY,SAAS,QAAQ,GAAG;AAClC,UAAM,EAAE,YAAY,IAAI;AAExB,UAAM,QAAQ,IAAI,YAAY;AAE9B,eAAW,OAAO,UAAU;AAC1B,YAAM,GAAG,IAAI,UAAU,SAAS,GAAG,CAAW;AAAA,IAChD;AAGA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;","names":[]}