@bemedev/decompose 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  const DELIMITER = '-{/./:}-';
4
- const SEPARETOR = '.';
4
+ const SEPARATOR = '.';
5
5
 
6
6
  exports.DELIMITER = DELIMITER;
7
- exports.SEPARETOR = SEPARETOR;
7
+ exports.SEPARATOR = SEPARATOR;
8
8
  //# sourceMappingURL=strings.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"strings.cjs","sources":["../../src/constants/strings.ts"],"sourcesContent":["export const DELIMITER = '-{/./:}-' as const;\nexport const SEPARETOR = '.' as const;\n"],"names":[],"mappings":";;AAAO,MAAM,SAAS,GAAG,WAAoB;AACtC,MAAM,SAAS,GAAG;;;;;"}
1
+ {"version":3,"file":"strings.cjs","sources":["../../src/constants/strings.ts"],"sourcesContent":["export const DELIMITER = '-{/./:}-' as const;\nexport const SEPARATOR = '.' as const;\n"],"names":[],"mappings":";;AAAO,MAAM,SAAS,GAAG,WAAoB;AACtC,MAAM,SAAS,GAAG;;;;;"}
@@ -1,3 +1,3 @@
1
1
  export declare const DELIMITER: "-{/./:}-";
2
- export declare const SEPARETOR: ".";
2
+ export declare const SEPARATOR: ".";
3
3
  //# sourceMappingURL=strings.d.ts.map
@@ -1,5 +1,5 @@
1
1
  const DELIMITER = '-{/./:}-';
2
- const SEPARETOR = '.';
2
+ const SEPARATOR = '.';
3
3
 
4
- export { DELIMITER, SEPARETOR };
4
+ export { DELIMITER, SEPARATOR };
5
5
  //# sourceMappingURL=strings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"strings.js","sources":["../../src/constants/strings.ts"],"sourcesContent":["export const DELIMITER = '-{/./:}-' as const;\nexport const SEPARETOR = '.' as const;\n"],"names":[],"mappings":"AAAO,MAAM,SAAS,GAAG,WAAoB;AACtC,MAAM,SAAS,GAAG;;;;"}
1
+ {"version":3,"file":"strings.js","sources":["../../src/constants/strings.ts"],"sourcesContent":["export const DELIMITER = '-{/./:}-' as const;\nexport const SEPARATOR = '.' as const;\n"],"names":[],"mappings":"AAAO,MAAM,SAAS,GAAG,WAAoB;AACtC,MAAM,SAAS,GAAG;;;;"}
package/lib/decompose.cjs CHANGED
@@ -24,7 +24,7 @@ function decompose(val, sorter) {
24
24
  output1.sort(sorter ?? sortMap.sortMap);
25
25
  const regex = new RegExp(constants_strings.DELIMITER, 'g');
26
26
  const output2 = output1.map(value => value.replace(regex, '.'));
27
- return Object.freeze(output2);
27
+ return output2;
28
28
  }
29
29
 
30
30
  exports.decompose = decompose;
@@ -1 +1 @@
1
- {"version":3,"file":"decompose.cjs","sources":["../src/decompose.ts"],"sourcesContent":["import { DELIMITER } from './constants/strings';\nimport { isPrimitive } from './helpers';\nimport { sortMap } from './sortMap';\nimport { Ru } from './types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction ddecompose(val: any, prev = '') {\n const _prev = prev ? prev + DELIMITER : '';\n const output: string[] = [];\n const entries1 = Object.entries(val);\n entries1.forEach(([key, value]) => {\n output.push(`${_prev}${key}`);\n const isPrimit = isPrimitive(value);\n if (!isPrimit) {\n const values = ddecompose(value, `${_prev}${key}`);\n output.push(...values);\n }\n });\n return output;\n}\n\nexport function decompose<T extends Ru>(\n val: T,\n sorter?: (a: string, b: string) => number,\n) {\n const output1 = ddecompose(val, '');\n output1.sort(sorter ?? sortMap);\n const regex = new RegExp(DELIMITER, 'g');\n const output2 = output1.map(value => value.replace(regex, '.'));\n\n return Object.freeze(output2);\n}\n"],"names":["DELIMITER","isPrimitive","sortMap"],"mappings":";;;;;;AAKA;AACA,SAAS,UAAU,CAAC,GAAQ,EAAE,IAAI,GAAG,EAAE,EAAA;AACrC,IAAA,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,GAAGA,2BAAS,GAAG,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;QAChC,MAAM,CAAC,IAAI,CAAC,CAAA,EAAG,KAAK,CAAG,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC;AAC9B,QAAA,MAAM,QAAQ,GAAGC,mBAAW,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,CAAG,EAAA,KAAK,CAAG,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC;AACnD,YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;SACxB;AACH,KAAC,CAAC,CAAC;AACH,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;AAEe,SAAA,SAAS,CACvB,GAAM,EACN,MAAyC,EAAA;IAEzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACpC,IAAA,OAAO,CAAC,IAAI,CAAC,MAAM,IAAIC,eAAO,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,IAAI,MAAM,CAACF,2BAAS,EAAE,GAAG,CAAC,CAAC;AACzC,IAAA,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AAEhE,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAChC;;;;"}
1
+ {"version":3,"file":"decompose.cjs","sources":["../src/decompose.ts"],"sourcesContent":["import { DELIMITER } from './constants/strings';\nimport { isPrimitive } from './helpers';\nimport { sortMap } from './sortMap';\nimport { Ru } from './types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction ddecompose(val: any, prev = '') {\n const _prev = prev ? prev + DELIMITER : '';\n const output: string[] = [];\n const entries1 = Object.entries(val);\n entries1.forEach(([key, value]) => {\n output.push(`${_prev}${key}`);\n const isPrimit = isPrimitive(value);\n if (!isPrimit) {\n const values = ddecompose(value, `${_prev}${key}`);\n output.push(...values);\n }\n });\n return output;\n}\n\nexport function decompose<T extends Ru>(\n val: T,\n sorter?: (a: string, b: string) => number,\n) {\n const output1 = ddecompose(val, '');\n output1.sort(sorter ?? sortMap);\n const regex = new RegExp(DELIMITER, 'g');\n const output2 = output1.map(value => value.replace(regex, '.'));\n\n return output2;\n}\n"],"names":["DELIMITER","isPrimitive","sortMap"],"mappings":";;;;;;AAKA;AACA,SAAS,UAAU,CAAC,GAAQ,EAAE,IAAI,GAAG,EAAE,EAAA;AACrC,IAAA,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,GAAGA,2BAAS,GAAG,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;QAChC,MAAM,CAAC,IAAI,CAAC,CAAA,EAAG,KAAK,CAAG,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC;AAC9B,QAAA,MAAM,QAAQ,GAAGC,mBAAW,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,CAAG,EAAA,KAAK,CAAG,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC;AACnD,YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;SACxB;AACH,KAAC,CAAC,CAAC;AACH,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;AAEe,SAAA,SAAS,CACvB,GAAM,EACN,MAAyC,EAAA;IAEzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACpC,IAAA,OAAO,CAAC,IAAI,CAAC,MAAM,IAAIC,eAAO,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,IAAI,MAAM,CAACF,2BAAS,EAAE,GAAG,CAAC,CAAC;AACzC,IAAA,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AAEhE,IAAA,OAAO,OAAO,CAAC;AACjB;;;;"}
@@ -1,3 +1,3 @@
1
1
  import { Ru } from './types';
2
- export declare function decompose<T extends Ru>(val: T, sorter?: (a: string, b: string) => number): readonly string[];
2
+ export declare function decompose<T extends Ru>(val: T, sorter?: (a: string, b: string) => number): string[];
3
3
  //# sourceMappingURL=decompose.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decompose.d.ts","sourceRoot":"","sources":["../src/decompose.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAkB7B,wBAAgB,SAAS,CAAC,CAAC,SAAS,EAAE,EACpC,GAAG,EAAE,CAAC,EACN,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,qBAQ1C"}
1
+ {"version":3,"file":"decompose.d.ts","sourceRoot":"","sources":["../src/decompose.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAkB7B,wBAAgB,SAAS,CAAC,CAAC,SAAS,EAAE,EACpC,GAAG,EAAE,CAAC,EACN,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,YAQ1C"}
package/lib/decompose.js CHANGED
@@ -22,7 +22,7 @@ function decompose(val, sorter) {
22
22
  output1.sort(sorter ?? sortMap);
23
23
  const regex = new RegExp(DELIMITER, 'g');
24
24
  const output2 = output1.map(value => value.replace(regex, '.'));
25
- return Object.freeze(output2);
25
+ return output2;
26
26
  }
27
27
 
28
28
  export { decompose };
@@ -1 +1 @@
1
- {"version":3,"file":"decompose.js","sources":["../src/decompose.ts"],"sourcesContent":["import { DELIMITER } from './constants/strings';\nimport { isPrimitive } from './helpers';\nimport { sortMap } from './sortMap';\nimport { Ru } from './types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction ddecompose(val: any, prev = '') {\n const _prev = prev ? prev + DELIMITER : '';\n const output: string[] = [];\n const entries1 = Object.entries(val);\n entries1.forEach(([key, value]) => {\n output.push(`${_prev}${key}`);\n const isPrimit = isPrimitive(value);\n if (!isPrimit) {\n const values = ddecompose(value, `${_prev}${key}`);\n output.push(...values);\n }\n });\n return output;\n}\n\nexport function decompose<T extends Ru>(\n val: T,\n sorter?: (a: string, b: string) => number,\n) {\n const output1 = ddecompose(val, '');\n output1.sort(sorter ?? sortMap);\n const regex = new RegExp(DELIMITER, 'g');\n const output2 = output1.map(value => value.replace(regex, '.'));\n\n return Object.freeze(output2);\n}\n"],"names":[],"mappings":";;;;AAKA;AACA,SAAS,UAAU,CAAC,GAAQ,EAAE,IAAI,GAAG,EAAE,EAAA;AACrC,IAAA,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;QAChC,MAAM,CAAC,IAAI,CAAC,CAAA,EAAG,KAAK,CAAG,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC;AAC9B,QAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,CAAG,EAAA,KAAK,CAAG,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC;AACnD,YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;SACxB;AACH,KAAC,CAAC,CAAC;AACH,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;AAEe,SAAA,SAAS,CACvB,GAAM,EACN,MAAyC,EAAA;IAEzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACpC,IAAA,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACzC,IAAA,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AAEhE,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAChC;;;;"}
1
+ {"version":3,"file":"decompose.js","sources":["../src/decompose.ts"],"sourcesContent":["import { DELIMITER } from './constants/strings';\nimport { isPrimitive } from './helpers';\nimport { sortMap } from './sortMap';\nimport { Ru } from './types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction ddecompose(val: any, prev = '') {\n const _prev = prev ? prev + DELIMITER : '';\n const output: string[] = [];\n const entries1 = Object.entries(val);\n entries1.forEach(([key, value]) => {\n output.push(`${_prev}${key}`);\n const isPrimit = isPrimitive(value);\n if (!isPrimit) {\n const values = ddecompose(value, `${_prev}${key}`);\n output.push(...values);\n }\n });\n return output;\n}\n\nexport function decompose<T extends Ru>(\n val: T,\n sorter?: (a: string, b: string) => number,\n) {\n const output1 = ddecompose(val, '');\n output1.sort(sorter ?? sortMap);\n const regex = new RegExp(DELIMITER, 'g');\n const output2 = output1.map(value => value.replace(regex, '.'));\n\n return output2;\n}\n"],"names":[],"mappings":";;;;AAKA;AACA,SAAS,UAAU,CAAC,GAAQ,EAAE,IAAI,GAAG,EAAE,EAAA;AACrC,IAAA,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;QAChC,MAAM,CAAC,IAAI,CAAC,CAAA,EAAG,KAAK,CAAG,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC;AAC9B,QAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,CAAG,EAAA,KAAK,CAAG,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC;AACnD,YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;SACxB;AACH,KAAC,CAAC,CAAC;AACH,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;AAEe,SAAA,SAAS,CACvB,GAAM,EACN,MAAyC,EAAA;IAEzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACpC,IAAA,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACzC,IAAA,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AAEhE,IAAA,OAAO,OAAO,CAAC;AACjB;;;;"}
@@ -4,8 +4,8 @@ var constants_strings = require('./constants/strings.cjs');
4
4
  var sortMap = require('./sortMap.cjs');
5
5
 
6
6
  function ddecompose(val, prev = '') {
7
- const _prev = prev ? prev + constants_strings.DELIMITER : '';
8
7
  const output = [];
8
+ const _prev = prev ? prev + constants_strings.DELIMITER : '';
9
9
  prev !== '' && output.push(prev);
10
10
  if (typeof val === 'string') {
11
11
  output.push(`${_prev}${val}`);
@@ -17,11 +17,11 @@ function ddecompose(val, prev = '') {
17
17
  return output;
18
18
  }
19
19
  function decomposeSV(val, sorter) {
20
- const first = ddecompose(val, '');
21
- first.sort(sorter ?? sortMap.sortMap);
20
+ const output1 = ddecompose(val, '');
21
+ output1.sort(sorter ?? sortMap.sortMap);
22
22
  const regex = new RegExp(constants_strings.DELIMITER, 'g');
23
- const output = first.map(value => value.replace(regex, '.'));
24
- return Object.freeze(output);
23
+ const output2 = output1.map(value => value.replace(regex, '.'));
24
+ return output2;
25
25
  }
26
26
 
27
27
  exports.decomposeSV = decomposeSV;
@@ -1 +1 @@
1
- {"version":3,"file":"decomposeSV.cjs","sources":["../src/decomposeSV.ts"],"sourcesContent":["import { DELIMITER } from './constants/strings';\nimport { sortMap } from './sortMap';\nimport type { StateMatching, StateValue } from './types';\n\nfunction ddecompose(val: StateValue, prev = '') {\n const _prev = prev ? prev + DELIMITER : '';\n const output: string[] = [];\n prev !== '' && output.push(prev);\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\nexport function decomposeSV<T extends StateValue>(\n val: T,\n sorter?: (a: string, b: string) => number,\n): readonly StateMatching<T>[] {\n const first = ddecompose(val, '');\n first.sort(sorter ?? sortMap);\n const regex = new RegExp(DELIMITER, 'g');\n const output = first.map(value => value.replace(regex, '.'));\n\n return Object.freeze(output) as StateMatching<T>[];\n}\n"],"names":["DELIMITER","sortMap"],"mappings":";;;;;AAIA,SAAS,UAAU,CAAC,GAAe,EAAE,IAAI,GAAG,EAAE,EAAA;AAC5C,IAAA,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,GAAGA,2BAAS,GAAG,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjC,IAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,MAAM,CAAC,IAAI,CAAC,CAAA,EAAG,KAAK,CAAG,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC;KAC/B;SAAM;QACL,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,MAAM,CAAC,IAAI,CACT,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAG,EAAA,KAAK,CAAG,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC,CAAC,IAAI,EAAE,CAClE,CAAC;KACH;AAED,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;AAEe,SAAA,WAAW,CACzB,GAAM,EACN,MAAyC,EAAA;IAEzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAClC,IAAA,KAAK,CAAC,IAAI,CAAC,MAAM,IAAIC,eAAO,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAI,MAAM,CAACD,2BAAS,EAAE,GAAG,CAAC,CAAC;AACzC,IAAA,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AAE7D,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAuB,CAAC;AACrD;;;;"}
1
+ {"version":3,"file":"decomposeSV.cjs","sources":["../src/decomposeSV.ts"],"sourcesContent":["import { DELIMITER } from './constants/strings';\nimport { sortMap } from './sortMap';\nimport type { StateMatching, StateValue } from './types';\n\nfunction ddecompose(val: StateValue, prev = '') {\n const output: string[] = [];\n\n const _prev = prev ? prev + DELIMITER : '';\n 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\nexport function decomposeSV<T extends StateValue>(\n val: T,\n sorter?: (a: string, b: string) => number,\n): readonly StateMatching<T>[] {\n const output1 = ddecompose(val, '');\n output1.sort(sorter ?? sortMap);\n const regex = new RegExp(DELIMITER, 'g');\n const output2 = output1.map(value => value.replace(regex, '.'));\n\n return output2 as StateMatching<T>[];\n}\n"],"names":["DELIMITER","sortMap"],"mappings":";;;;;AAIA,SAAS,UAAU,CAAC,GAAe,EAAE,IAAI,GAAG,EAAE,EAAA;IAC5C,MAAM,MAAM,GAAa,EAAE,CAAC;AAE5B,IAAA,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,GAAGA,2BAAS,GAAG,EAAE,CAAC;IAC3C,IAAI,KAAK,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEjC,IAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,MAAM,CAAC,IAAI,CAAC,CAAA,EAAG,KAAK,CAAG,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC;KAC/B;SAAM;QACL,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,MAAM,CAAC,IAAI,CACT,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAG,EAAA,KAAK,CAAG,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC,CAAC,IAAI,EAAE,CAClE,CAAC;KACH;AAED,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;AAEe,SAAA,WAAW,CACzB,GAAM,EACN,MAAyC,EAAA;IAEzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACpC,IAAA,OAAO,CAAC,IAAI,CAAC,MAAM,IAAIC,eAAO,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,IAAI,MAAM,CAACD,2BAAS,EAAE,GAAG,CAAC,CAAC;AACzC,IAAA,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AAEhE,IAAA,OAAO,OAA6B,CAAC;AACvC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"decomposeSV.d.ts","sourceRoot":"","sources":["../src/decomposeSV.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAkBzD,wBAAgB,WAAW,CAAC,CAAC,SAAS,UAAU,EAC9C,GAAG,EAAE,CAAC,EACN,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,GACxC,SAAS,aAAa,CAAC,CAAC,CAAC,EAAE,CAO7B"}
1
+ {"version":3,"file":"decomposeSV.d.ts","sourceRoot":"","sources":["../src/decomposeSV.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAoBzD,wBAAgB,WAAW,CAAC,CAAC,SAAS,UAAU,EAC9C,GAAG,EAAE,CAAC,EACN,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,GACxC,SAAS,aAAa,CAAC,CAAC,CAAC,EAAE,CAO7B"}
@@ -2,8 +2,8 @@ import { DELIMITER } from './constants/strings.js';
2
2
  import { sortMap } from './sortMap.js';
3
3
 
4
4
  function ddecompose(val, prev = '') {
5
- const _prev = prev ? prev + DELIMITER : '';
6
5
  const output = [];
6
+ const _prev = prev ? prev + DELIMITER : '';
7
7
  prev !== '' && output.push(prev);
8
8
  if (typeof val === 'string') {
9
9
  output.push(`${_prev}${val}`);
@@ -15,11 +15,11 @@ function ddecompose(val, prev = '') {
15
15
  return output;
16
16
  }
17
17
  function decomposeSV(val, sorter) {
18
- const first = ddecompose(val, '');
19
- first.sort(sorter ?? sortMap);
18
+ const output1 = ddecompose(val, '');
19
+ output1.sort(sorter ?? sortMap);
20
20
  const regex = new RegExp(DELIMITER, 'g');
21
- const output = first.map(value => value.replace(regex, '.'));
22
- return Object.freeze(output);
21
+ const output2 = output1.map(value => value.replace(regex, '.'));
22
+ return output2;
23
23
  }
24
24
 
25
25
  export { decomposeSV };
@@ -1 +1 @@
1
- {"version":3,"file":"decomposeSV.js","sources":["../src/decomposeSV.ts"],"sourcesContent":["import { DELIMITER } from './constants/strings';\nimport { sortMap } from './sortMap';\nimport type { StateMatching, StateValue } from './types';\n\nfunction ddecompose(val: StateValue, prev = '') {\n const _prev = prev ? prev + DELIMITER : '';\n const output: string[] = [];\n prev !== '' && output.push(prev);\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\nexport function decomposeSV<T extends StateValue>(\n val: T,\n sorter?: (a: string, b: string) => number,\n): readonly StateMatching<T>[] {\n const first = ddecompose(val, '');\n first.sort(sorter ?? sortMap);\n const regex = new RegExp(DELIMITER, 'g');\n const output = first.map(value => value.replace(regex, '.'));\n\n return Object.freeze(output) as StateMatching<T>[];\n}\n"],"names":[],"mappings":";;;AAIA,SAAS,UAAU,CAAC,GAAe,EAAE,IAAI,GAAG,EAAE,EAAA;AAC5C,IAAA,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjC,IAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,MAAM,CAAC,IAAI,CAAC,CAAA,EAAG,KAAK,CAAG,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC;KAC/B;SAAM;QACL,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,MAAM,CAAC,IAAI,CACT,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAG,EAAA,KAAK,CAAG,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC,CAAC,IAAI,EAAE,CAClE,CAAC;KACH;AAED,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;AAEe,SAAA,WAAW,CACzB,GAAM,EACN,MAAyC,EAAA;IAEzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAClC,IAAA,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACzC,IAAA,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AAE7D,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAuB,CAAC;AACrD;;;;"}
1
+ {"version":3,"file":"decomposeSV.js","sources":["../src/decomposeSV.ts"],"sourcesContent":["import { DELIMITER } from './constants/strings';\nimport { sortMap } from './sortMap';\nimport type { StateMatching, StateValue } from './types';\n\nfunction ddecompose(val: StateValue, prev = '') {\n const output: string[] = [];\n\n const _prev = prev ? prev + DELIMITER : '';\n 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\nexport function decomposeSV<T extends StateValue>(\n val: T,\n sorter?: (a: string, b: string) => number,\n): readonly StateMatching<T>[] {\n const output1 = ddecompose(val, '');\n output1.sort(sorter ?? sortMap);\n const regex = new RegExp(DELIMITER, 'g');\n const output2 = output1.map(value => value.replace(regex, '.'));\n\n return output2 as StateMatching<T>[];\n}\n"],"names":[],"mappings":";;;AAIA,SAAS,UAAU,CAAC,GAAe,EAAE,IAAI,GAAG,EAAE,EAAA;IAC5C,MAAM,MAAM,GAAa,EAAE,CAAC;AAE5B,IAAA,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,EAAE,CAAC;IAC3C,IAAI,KAAK,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEjC,IAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,MAAM,CAAC,IAAI,CAAC,CAAA,EAAG,KAAK,CAAG,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC;KAC/B;SAAM;QACL,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,MAAM,CAAC,IAAI,CACT,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAG,EAAA,KAAK,CAAG,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC,CAAC,IAAI,EAAE,CAClE,CAAC;KACH;AAED,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;AAEe,SAAA,WAAW,CACzB,GAAM,EACN,MAAyC,EAAA;IAEzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACpC,IAAA,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACzC,IAAA,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AAEhE,IAAA,OAAO,OAA6B,CAAC;AACvC;;;;"}
package/lib/recompose.cjs CHANGED
@@ -8,25 +8,49 @@ function recomposeObjectUrl(shape, value) {
8
8
  const obj = {};
9
9
  if (shape.length <= 0)
10
10
  return obj;
11
- const keys = shape.split(constants_strings.SEPARETOR);
11
+ const keys = shape.split(constants_strings.SEPARATOR);
12
12
  if (keys.length === 1) {
13
13
  const key = keys.shift();
14
14
  obj[key] = value;
15
15
  }
16
16
  else {
17
17
  const key = keys.shift();
18
- obj[key] = recomposeObjectUrl(keys.join(constants_strings.SEPARETOR), value);
18
+ obj[key] = recomposeObjectUrl(keys.join(constants_strings.SEPARATOR), value);
19
19
  }
20
20
  return obj;
21
21
  }
22
+ /**
23
+ * Recompose a flatten object
24
+ * @example
25
+ *
26
+ * { 'data.age': 10, 'human.login': 'login' }
27
+ * will become
28
+ * {
29
+ data: {
30
+ age: 10,
31
+ },
32
+ human: {
33
+ login: 'login',
34
+ },
35
+ }
36
+ * @remark
37
+ * The generated typescript type takes too much ressources
38
+
39
+ * @todo
40
+ Add type to the return
41
+ */
22
42
  function recompose(shape) {
23
43
  const entries = Object.entries(shape);
24
44
  const arr = [];
25
45
  entries.forEach(([key, value]) => {
26
46
  arr.push(recomposeObjectUrl(key, value));
27
47
  });
48
+ /**
49
+ * @todo
50
+ * Add a return type
51
+ */
28
52
  const output = tsDeepmerge.merge(...arr);
29
- return Object.freeze(output);
53
+ return output;
30
54
  }
31
55
 
32
56
  exports.recompose = recompose;
@@ -1 +1 @@
1
- {"version":3,"file":"recompose.cjs","sources":["../src/recompose.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { merge } from 'ts-deepmerge';\nimport { SEPARETOR } from './constants/strings';\nimport type { Recompose, Ru } from './types';\n\nexport function recomposeObjectUrl<T>(shape: string, value: T) {\n const obj: Ru = {};\n if (shape.length <= 0) return obj;\n\n const keys = shape.split(SEPARETOR);\n if (keys.length === 1) {\n const key = keys.shift();\n obj[key!] = value;\n } else {\n const key = keys.shift();\n obj[key!] = recomposeObjectUrl(keys.join(SEPARETOR), value);\n }\n\n return obj;\n}\n\nexport function recompose<T extends Ru>(shape: T) {\n const entries = Object.entries(shape);\n const arr: any[] = [];\n entries.forEach(([key, value]) => {\n arr.push(recomposeObjectUrl(key, value));\n });\n const output = merge(...arr);\n return Object.freeze(output) as Recompose<T>;\n}\n"],"names":["SEPARETOR","merge"],"mappings":";;;;;AAAA;AAKgB,SAAA,kBAAkB,CAAI,KAAa,EAAE,KAAQ,EAAA;IAC3D,MAAM,GAAG,GAAO,EAAE,CAAC;AACnB,IAAA,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;AAAE,QAAA,OAAO,GAAG,CAAC;IAElC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAACA,2BAAS,CAAC,CAAC;AACpC,IAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACrB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AACzB,QAAA,GAAG,CAAC,GAAI,CAAC,GAAG,KAAK,CAAC;KACnB;SAAM;AACL,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AACzB,QAAA,GAAG,CAAC,GAAI,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAACA,2BAAS,CAAC,EAAE,KAAK,CAAC,CAAC;KAC7D;AAED,IAAA,OAAO,GAAG,CAAC;AACb,CAAC;AAEK,SAAU,SAAS,CAAe,KAAQ,EAAA;IAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,GAAG,GAAU,EAAE,CAAC;IACtB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;QAC/B,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3C,KAAC,CAAC,CAAC;AACH,IAAA,MAAM,MAAM,GAAGC,iBAAK,CAAC,GAAG,GAAG,CAAC,CAAC;AAC7B,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAiB,CAAC;AAC/C;;;;;"}
1
+ {"version":3,"file":"recompose.cjs","sources":["../src/recompose.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { merge } from 'ts-deepmerge';\nimport { SEPARATOR } from './constants/strings';\nimport type { Ru } from './types';\n\nexport function recomposeObjectUrl<T>(shape: string, value: T) {\n const obj: Ru = {};\n if (shape.length <= 0) return obj;\n\n const keys = shape.split(SEPARATOR);\n if (keys.length === 1) {\n const key = keys.shift();\n obj[key!] = value;\n } else {\n const key = keys.shift();\n obj[key!] = recomposeObjectUrl(keys.join(SEPARATOR), value);\n }\n\n return obj;\n}\n\n/**\n * Recompose a flatten object \n * @example\n * \n * { 'data.age': 10, 'human.login': 'login' }\n * will become\n * {\n data: {\n age: 10,\n },\n human: {\n login: 'login',\n },\n }\n * @remark \n * The generated typescript type takes too much ressources\n\n * @todo\n Add type to the return\n */\nexport function recompose<T extends Ru>(shape: T): Ru {\n const entries = Object.entries(shape);\n const arr: any[] = [];\n entries.forEach(([key, value]) => {\n arr.push(recomposeObjectUrl(key, value));\n });\n /**\n * @todo\n * Add a return type\n */\n const output = merge(...arr);\n return output;\n}\n"],"names":["SEPARATOR","merge"],"mappings":";;;;;AAAA;AAKgB,SAAA,kBAAkB,CAAI,KAAa,EAAE,KAAQ,EAAA;IAC3D,MAAM,GAAG,GAAO,EAAE,CAAC;AACnB,IAAA,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;AAAE,QAAA,OAAO,GAAG,CAAC;IAElC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAACA,2BAAS,CAAC,CAAC;AACpC,IAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACrB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AACzB,QAAA,GAAG,CAAC,GAAI,CAAC,GAAG,KAAK,CAAC;KACnB;SAAM;AACL,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AACzB,QAAA,GAAG,CAAC,GAAI,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAACA,2BAAS,CAAC,EAAE,KAAK,CAAC,CAAC;KAC7D;AAED,IAAA,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;;;;;;AAmBG;AACG,SAAU,SAAS,CAAe,KAAQ,EAAA;IAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,GAAG,GAAU,EAAE,CAAC;IACtB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;QAC/B,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3C,KAAC,CAAC,CAAC;AACH;;;AAGG;AACH,IAAA,MAAM,MAAM,GAAGC,iBAAK,CAAC,GAAG,GAAG,CAAC,CAAC;AAC7B,IAAA,OAAO,MAAM,CAAC;AAChB;;;;;"}