UNPKG

@bemedev/decompose

Version:
1 lines 2.21 kB
{"version":3,"file":"decomposeSV.cjs","names":["DELIMITER","sortMap","castings"],"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"],"mappings":";;;;;AAKA,SAAS,WAAW,KAAiB,OAAO,IAAI;CAC9C,MAAM,SAAmB,EAAE;CAE3B,MAAM,QAAQ,OAAO,OAAOA,0BAAAA,YAAY;AACxC,KAAI,SAAS,GAAI,QAAO,KAAK,KAAK;AAElC,KAAI,OAAO,QAAQ,SACjB,QAAO,KAAK,GAAG,QAAQ,MAAM;MACxB;EACL,MAAM,OAAO,OAAO,KAAK,IAAI;AAC7B,SAAO,KACL,GAAG,KAAK,KAAI,QAAO,WAAW,IAAI,MAAM,GAAG,QAAQ,MAAM,CAAC,CAAC,MAAM,CAClE;;AAGH,QAAO;;AAeT,MAAM,gBAAgC,KAAK,SAASC,gBAAAA,YAAY;CAC9D,MAAM,UAAU,WAAW,KAAK,GAAG;AACnC,SAAQ,KAAK,OAAO;CACpB,MAAM,QAAQ,IAAI,OAAOD,0BAAAA,WAAW,IAAI;AACxC,QAAO,QAAQ,KAAI,UAAS,MAAM,QAAQ,OAAO,IAAI,CAAC;;;AAIxD,MAAa,eAA4B,KAAK,WAAW;AACvD,QAAOE,eAAAA,SAAS,QAAQ,IAAI,aAAa,KAAK,OAAO,CAAC;;AAExD,YAAY,MAAM;AAClB,YAAY,SAASA,eAAAA,SAAS,QAAQ,QAAuB,aAAa"}