UNPKG

@bemedev/decompose

Version:
1 lines 2.7 kB
{"version":3,"file":"decomposeKeys.cjs","names":["DELIMITER","isPrimitive","sortMap","castings"],"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"],"mappings":";;;;;;AAMA,SAAS,eAAe,KAAU,OAAO,IAAI,gBAAgB,MAAM;CACjE,MAAM,QAAQ,OAAO,OAAOA,0BAAAA,YAAY;CACxC,MAAM,SAAmB,EAAE;AACV,QAAO,QAAQ,IAAI,CAC3B,SAAS,CAAC,KAAK,WAAW;AAEjC,MAAI,CADaC,gBAAAA,YAAY,MAAM,EACpB;AACb,OAAI,cAAe,QAAO,KAAK,GAAG,QAAQ,MAAM;GAChD,MAAM,SAAS,eACb,OACA,GAAG,QAAQ,OACX,cACD;AACD,UAAO,KAAK,GAAG,OAAO;QACjB,QAAO,KAAK,GAAG,QAAQ,MAAM;GACpC;AACF,QAAO;;AAuBT,MAAM,kBACJ,KACA,SAASC,gBAAAA,SACT,gBAAgB,SACb;CACH,MAAM,UAAU,eAAe,KAAK,IAAI,cAAc;AACtD,SAAQ,KAAK,OAAO;CACpB,MAAM,QAAQ,IAAI,OAAOF,0BAAAA,WAAW,IAAI;AACxC,QAAO,QAAQ,KAAI,UAAS,MAAM,QAAQ,OAAO,IAAI,CAAC;;AAGxD,MAAa,iBACX,KACA,QACA,kBACG;AACH,QAAOG,eAAAA,SAAS,QAAQ,IAAI,eAAe,KAAK,QAAQ,cAAc,CAAC;;AAEzE,cAAc,MAAM;AACpB,cAAc,SACZA,eAAAA,SAAS,QAAQ,QAAyB,eAAe"}