UNPKG

eslint-plugin-comment-length

Version:

An ESLint plugin that provides rules that limit the line length of your comments

1 lines 1.86 kB
{"version":3,"file":"immutable-deep-merge.cjs","sources":["../../../src/utils/immutable-deep-merge.ts"],"sourcesContent":["export function deepCloneValue<T>(val: T): T {\n if (isRecord(val)) {\n return deepCloneObject(val);\n } else if (Array.isArray(val)) {\n return deepCloneArray(val);\n } else {\n return val;\n }\n}\n\nexport function deepCloneObject<T extends Record<string, unknown>>(a: T): T {\n const keys = new Set(Object.keys(a));\n const clone: Record<string, unknown> = {};\n\n for (const key of keys) {\n clone[key] = deepCloneValue(a[key]);\n }\n\n return clone as T;\n}\n\nfunction deepCloneArray<T extends Array<unknown>>(arr: T): T {\n const newArr = [];\n\n for (const val of arr) {\n newArr.push(deepCloneValue(val));\n }\n\n return newArr as T;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value != null && !Array.isArray(value);\n}\n"],"names":[],"mappings":";;AAAO,SAAS,eAAkB,GAAW,EAAA;AAC3C,EAAI,IAAA,QAAA,CAAS,GAAG,CAAG,EAAA;AACjB,IAAA,OAAO,gBAAgB,GAAG,CAAA,CAAA;AAAA,GACjB,MAAA,IAAA,KAAA,CAAM,OAAQ,CAAA,GAAG,CAAG,EAAA;AAC7B,IAAA,OAAO,eAAe,GAAG,CAAA,CAAA;AAAA,GACpB,MAAA;AACL,IAAO,OAAA,GAAA,CAAA;AAAA,GACT;AACF,CAAA;AAEO,SAAS,gBAAmD,CAAS,EAAA;AAC1E,EAAA,MAAM,OAAO,IAAI,GAAA,CAAI,MAAO,CAAA,IAAA,CAAK,CAAC,CAAC,CAAA,CAAA;AACnC,EAAA,MAAM,QAAiC,EAAC,CAAA;AAExC,EAAA,KAAA,MAAW,OAAO,IAAM,EAAA;AACtB,IAAA,KAAA,CAAM,GAAG,CAAA,GAAI,cAAe,CAAA,CAAA,CAAE,GAAG,CAAC,CAAA,CAAA;AAAA,GACpC;AAEA,EAAO,OAAA,KAAA,CAAA;AACT,CAAA;AAEA,SAAS,eAAyC,GAAW,EAAA;AAC3D,EAAA,MAAM,SAAS,EAAC,CAAA;AAEhB,EAAA,KAAA,MAAW,OAAO,GAAK,EAAA;AACrB,IAAO,MAAA,CAAA,IAAA,CAAK,cAAe,CAAA,GAAG,CAAC,CAAA,CAAA;AAAA,GACjC;AAEA,EAAO,OAAA,MAAA,CAAA;AACT,CAAA;AAEA,SAAS,SAAS,KAAkD,EAAA;AAClE,EAAO,OAAA,OAAO,UAAU,QAAY,IAAA,KAAA,IAAS,QAAQ,CAAC,KAAA,CAAM,QAAQ,KAAK,CAAA,CAAA;AAC3E;;;;;"}