UNPKG

@bemedev/decompose

Version:
1 lines 3.31 kB
{"version":3,"file":"decomposeKeys.cjs","sources":["../src/decomposeKeys.ts"],"sourcesContent":["import { castings } from '@bemedev/types';\nimport { DELIMITER } from './constants/strings';\nimport { isPrimitive } from './helpers';\nimport { sortMap } from './sortMap';\nimport type { KeysMatching, Ru } from './types.types';\n\nfunction ddecomposeKeys(val: any, prev = '', addObjectKeys = true) {\n const _prev = prev ? prev + DELIMITER : '';\n const output: string[] = [];\n const entries1 = Object.entries(val);\n entries1.forEach(([key, value]) => {\n const isPrimit = isPrimitive(value);\n if (!isPrimit) {\n if (addObjectKeys) output.push(`${_prev}${key}`);\n const values = ddecomposeKeys(\n value,\n `${_prev}${key}`,\n addObjectKeys,\n );\n output.push(...values);\n } else output.push(`${_prev}${key}`);\n });\n return output;\n}\n\ntype DecomposeKeys_F = <\n T extends Ru,\n AddObjectKeys extends boolean = true,\n>(\n val: T,\n sorter?: typeof sortMap,\n addObjectKeys?: AddObjectKeys,\n) => KeysMatching<T, AddObjectKeys>[];\n\ntype _DecomposeKeys_F = (\n val: any,\n sorter?: typeof sortMap,\n addObjectKeys?: boolean,\n) => string[];\n\nexport type DecomposeKeys = DecomposeKeys_F & {\n strict: DecomposeKeys_F;\n low: _DecomposeKeys_F;\n};\n\nconst _decomposeKeys: _DecomposeKeys_F = (\n val,\n sorter = sortMap,\n addObjectKeys = true,\n) => {\n const output1 = ddecomposeKeys(val, '', addObjectKeys);\n output1.sort(sorter);\n const regex = new RegExp(DELIMITER, 'g');\n return output1.map(value => value.replace(regex, '.'));\n};\n\nexport const decomposeKeys: DecomposeKeys = (\n val,\n sorter,\n addObjectKeys,\n) => {\n return castings.commons.any(_decomposeKeys(val, sorter, addObjectKeys));\n};\ndecomposeKeys.low = _decomposeKeys;\ndecomposeKeys.strict =\n castings.commons.unknown<DecomposeKeys_F>(_decomposeKeys);\n"],"names":["DELIMITER","isPrimitive","sortMap","castings"],"mappings":";;;;;;;AAMA,SAAS,cAAc,CAAC,GAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,aAAa,GAAG,IAAI,EAAA;AAC/D,IAAA,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,GAAGA,2BAAS,GAAG,EAAE;IAC1C,MAAM,MAAM,GAAa,EAAE;IAC3B,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;QACnC,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,IAAI,aAAa;gBAAE,MAAM,CAAC,IAAI,CAAC,CAAA,EAAG,KAAK,CAAA,EAAG,GAAG,CAAA,CAAE,CAAC;AAChD,YAAA,MAAM,MAAM,GAAG,cAAc,CAC3B,KAAK,EACL,CAAA,EAAG,KAAK,CAAA,EAAG,GAAG,CAAA,CAAE,EAChB,aAAa,CACd;AACD,YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;QACxB;;YAAO,MAAM,CAAC,IAAI,CAAC,CAAA,EAAG,KAAK,CAAA,EAAG,GAAG,CAAA,CAAE,CAAC;AACtC,IAAA,CAAC,CAAC;AACF,IAAA,OAAO,MAAM;AACf;AAsBA,MAAM,cAAc,GAAqB,CACvC,GAAG,EACH,MAAM,GAAGC,eAAO,EAChB,aAAa,GAAG,IAAI,KAClB;IACF,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,EAAE,EAAE,aAAa,CAAC;AACtD,IAAA,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;IACpB,MAAM,KAAK,GAAG,IAAI,MAAM,CAACF,2BAAS,EAAE,GAAG,CAAC;AACxC,IAAA,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACxD,CAAC;AAEM,MAAM,aAAa,GAAkB,CAC1C,GAAG,EACH,MAAM,EACN,aAAa,KACX;AACF,IAAA,OAAOG,cAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;AACzE;AACA,aAAa,CAAC,GAAG,GAAG,cAAc;AAClC,aAAa,CAAC,MAAM;AAClB,IAAAA,cAAQ,CAAC,OAAO,CAAC,OAAO,CAAkB,cAAc,CAAC;;;;"}