{"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":[]}