{"version":3,"file":"cloneObjectDeep.cjs","sources":["../../../src/types/clone/cloneObjectDeep.ts"],"sourcesContent":["import { isFunction } from '../isFunction';\nimport { isPlainObject } from '../isPlainObject';\nimport type { InstanceClone } from '../types';\nimport { clone } from './clone';\n\nexport function cloneObjectDeep<T>(\n  value: T,\n  instanceClone?: InstanceClone<T>,\n): T {\n  if (isFunction(instanceClone)) {\n    return instanceClone(value);\n  }\n\n  if (instanceClone || isPlainObject(value)) {\n    const cloned = new (value as any).constructor();\n\n    for (const key in value) {\n      cloned[key] = clone(value[key]);\n    }\n\n    return cloned;\n  }\n\n  return value;\n}\n"],"names":["isFunction","isPlainObject","clone"],"mappings":";;;;;;AAKgB,SAAA,eAAe,CAC7B,KAAQ,EACR,aAAgC,EAAA;AAEhC,IAAA,IAAIA,qBAAU,CAAC,aAAa,CAAC,EAAE;AAC7B,QAAA,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;KAC7B;AAED,IAAA,IAAI,aAAa,IAAIC,2BAAa,CAAC,KAAK,CAAC,EAAE;AACzC,QAAA,MAAM,MAAM,GAAG,IAAK,KAAa,CAAC,WAAW,EAAE,CAAC;AAEhD,QAAA,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;YACvB,MAAM,CAAC,GAAG,CAAC,GAAGC,WAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;SACjC;AAED,QAAA,OAAO,MAAM,CAAC;KACf;AAED,IAAA,OAAO,KAAK,CAAC;AACf;;;;"}