@bemedev/decompose
Version:
Decompose object and so more
1 lines • 2.69 kB
Source Map (JSON)
{"version":3,"file":"decomposeSV.cjs","sources":["../src/decomposeSV.ts"],"sourcesContent":["import { castings } from '@bemedev/types';\nimport { DELIMITER } from './constants/strings';\nimport { sortMap } from './sortMap';\nimport type { StateMatching, StateValue } from './types.types';\n\nfunction ddecompose(val: StateValue, prev = '') {\n const output: string[] = [];\n\n const _prev = prev ? prev + DELIMITER : '';\n if (prev !== '') output.push(prev);\n\n if (typeof val === 'string') {\n output.push(`${_prev}${val}`);\n } else {\n const keys = Object.keys(val);\n output.push(\n ...keys.map(key => ddecompose(val[key], `${_prev}${key}`)).flat(),\n );\n }\n\n return output;\n}\n\ntype DecomposeSV_F = <T extends StateValue>(\n val: T,\n sorter?: typeof sortMap,\n) => StateMatching<T>[];\n\ntype _DecomposeSV_F = (val: any, sorter?: typeof sortMap) => string[];\n\nexport type DecomposeSV = DecomposeSV_F & {\n strict: DecomposeSV_F;\n low: _DecomposeSV_F;\n};\n\nconst _decomposeSV: _DecomposeSV_F = (val, sorter = sortMap) => {\n const output1 = ddecompose(val, '');\n output1.sort(sorter);\n const regex = new RegExp(DELIMITER, 'g');\n return output1.map(value => value.replace(regex, '.'));\n};\n\n/* v8 ignore next 3 */\nexport const decomposeSV: DecomposeSV = (val, sorter) => {\n return castings.commons.any(_decomposeSV(val, sorter));\n};\ndecomposeSV.low = _decomposeSV;\ndecomposeSV.strict = castings.commons.unknown<DecomposeSV_F>(_decomposeSV);\n"],"names":["DELIMITER","sortMap","castings"],"mappings":";;;;;;AAKA,SAAS,UAAU,CAAC,GAAe,EAAE,IAAI,GAAG,EAAE,EAAA;IAC5C,MAAM,MAAM,GAAa,EAAE;AAE3B,IAAA,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,GAAGA,2BAAS,GAAG,EAAE;IAC1C,IAAI,IAAI,KAAK,EAAE;AAAE,QAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAElC,IAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,MAAM,CAAC,IAAI,CAAC,CAAA,EAAG,KAAK,CAAA,EAAG,GAAG,CAAA,CAAE,CAAC;IAC/B;SAAO;QACL,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AAC7B,QAAA,MAAM,CAAC,IAAI,CACT,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAA,EAAG,KAAK,CAAA,EAAG,GAAG,CAAA,CAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAClE;IACH;AAEA,IAAA,OAAO,MAAM;AACf;AAcA,MAAM,YAAY,GAAmB,CAAC,GAAG,EAAE,MAAM,GAAGC,eAAO,KAAI;IAC7D,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC;AACnC,IAAA,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;IACpB,MAAM,KAAK,GAAG,IAAI,MAAM,CAACD,2BAAS,EAAE,GAAG,CAAC;AACxC,IAAA,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACxD,CAAC;AAED;MACa,WAAW,GAAgB,CAAC,GAAG,EAAE,MAAM,KAAI;AACtD,IAAA,OAAOE,cAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACxD;AACA,WAAW,CAAC,GAAG,GAAG,YAAY;AAC9B,WAAW,CAAC,MAAM,GAAGA,cAAQ,CAAC,OAAO,CAAC,OAAO,CAAgB,YAAY,CAAC;;;;"}