UNPKG

@bemedev/decompose

Version:
1 lines 2.7 kB
{"version":3,"file":"decompose.cjs","sources":["../src/decompose.ts"],"sourcesContent":["import type { TrueObject } from '@bemedev/types';\nimport { DELIMITER } from './constants/strings';\nimport { isPrimitive } from './helpers';\nimport type { Decompose } from './types.types';\n\nfunction ddecompose(val: any, prev = '') {\n const _prev = prev ? prev + DELIMITER : '';\n const output: [string, any][] = [];\n const entries1 = Object.entries(val);\n entries1.forEach(([key, value]) => {\n const isPrimit = isPrimitive(value) || Array.isArray(value);\n if (!isPrimit) {\n const values = ddecompose(value, `${_prev}${key}`);\n output.push(...values);\n } else output.push([`${_prev}${key}`, value]);\n });\n return output;\n}\n\ntype Decompose_F = <T extends TrueObject>(val: T) => Decompose<T>;\ntype _Decompose_F = (val: any) => any;\n\nexport type Decomposer = Decompose_F & {\n strict: Decompose_F;\n low: _Decompose_F;\n};\n\nconst _decompose: _Decompose_F = val => {\n const entries1 = ddecompose(val, '');\n if (entries1.length == 0) return {};\n\n const regex = new RegExp(DELIMITER, 'g');\n const entries2 = entries1.map(([key, value]) => [\n key.replace(regex, '.'),\n value,\n ]);\n\n const output = Object.fromEntries(entries2);\n return output;\n};\n\n/* v8 ignore next 1 */\nexport const decompose: Decomposer = val => _decompose(val);\ndecompose.low = _decompose;\ndecompose.strict = _decompose;\n"],"names":["DELIMITER","isPrimitive"],"mappings":";;;;;AAKA,SAAS,UAAU,CAAC,GAAQ,EAAE,IAAI,GAAG,EAAE,EAAA;AACrC,IAAA,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,GAAGA,2BAAS,GAAG,EAAE;IAC1C,MAAM,MAAM,GAAoB,EAAE;IAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AAChC,QAAA,MAAM,QAAQ,GAAGC,mBAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAC3D,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,CAAG,EAAA,KAAK,CAAG,EAAA,GAAG,CAAE,CAAA,CAAC;AAClD,YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;;;AACjB,YAAA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAG,EAAA,KAAK,CAAG,EAAA,GAAG,CAAE,CAAA,EAAE,KAAK,CAAC,CAAC;AAC/C,KAAC,CAAC;AACF,IAAA,OAAO,MAAM;AACf;AAUA,MAAM,UAAU,GAAiB,GAAG,IAAG;IACrC,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC;AACpC,IAAA,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC;AAAE,QAAA,OAAO,EAAE;IAEnC,MAAM,KAAK,GAAG,IAAI,MAAM,CAACD,2BAAS,EAAE,GAAG,CAAC;AACxC,IAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK;AAC9C,QAAA,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;QACvB,KAAK;AACN,KAAA,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;AAC3C,IAAA,OAAO,MAAM;AACf,CAAC;AAED;AACO,MAAM,SAAS,GAAe,GAAG,IAAI,UAAU,CAAC,GAAG;AAC1D,SAAS,CAAC,GAAG,GAAG,UAAU;AAC1B,SAAS,CAAC,MAAM,GAAG,UAAU;;;;"}