@bemedev/decompose 1.4.0 → 1.5.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.
- package/lib/decompose.cjs +8 -5
- package/lib/decompose.cjs.map +1 -1
- package/lib/decompose.d.ts +1 -1
- package/lib/decompose.d.ts.map +1 -1
- package/lib/decompose.js +8 -5
- package/lib/decompose.js.map +1 -1
- package/lib/types.types.d.ts +18 -7
- package/lib/types.types.d.ts.map +1 -1
- package/package.json +10 -10
package/lib/decompose.cjs
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var constants_strings = require('./constants/strings.cjs');
|
|
4
4
|
var helpers = require('./helpers.cjs');
|
|
5
5
|
|
|
6
|
-
function ddecompose(arg, prev = '', options = helpers.DEFAULT_DECOMPOSE_OPTIONS) {
|
|
6
|
+
function ddecompose(arg, prev = '', options = helpers.DEFAULT_DECOMPOSE_OPTIONS, first = true) {
|
|
7
7
|
const { object } = {
|
|
8
8
|
...helpers.DEFAULT_DECOMPOSE_OPTIONS,
|
|
9
9
|
...options,
|
|
@@ -14,10 +14,10 @@ function ddecompose(arg, prev = '', options = helpers.DEFAULT_DECOMPOSE_OPTIONS)
|
|
|
14
14
|
const output = [];
|
|
15
15
|
const isArray = Array.isArray(arg);
|
|
16
16
|
if (isArray) {
|
|
17
|
-
if (canAddObjectKeys)
|
|
17
|
+
if (canAddObjectKeys && !first)
|
|
18
18
|
output.push([`${prev}`, arg]);
|
|
19
19
|
arg.forEach((item, index) => {
|
|
20
|
-
const values = ddecompose(item, `${_prev}${constants_strings.LEFT_BRACKET}${index}${constants_strings.RIGHT_BRACKET}`, options);
|
|
20
|
+
const values = ddecompose(item, `${_prev}${constants_strings.LEFT_BRACKET}${index}${constants_strings.RIGHT_BRACKET}`, options, false);
|
|
21
21
|
output.push(...values);
|
|
22
22
|
});
|
|
23
23
|
return output;
|
|
@@ -33,7 +33,7 @@ function ddecompose(arg, prev = '', options = helpers.DEFAULT_DECOMPOSE_OPTIONS)
|
|
|
33
33
|
output.push([`${prev}`, arg]);
|
|
34
34
|
const entries1 = Object.entries(arg);
|
|
35
35
|
entries1.forEach(([key, value]) => {
|
|
36
|
-
const values = ddecompose(value, `${_prev}${key}`, options);
|
|
36
|
+
const values = ddecompose(value, `${_prev}${key}`, options, false);
|
|
37
37
|
output.push(...values);
|
|
38
38
|
});
|
|
39
39
|
return output;
|
|
@@ -44,8 +44,11 @@ const _decompose = (val, options) => {
|
|
|
44
44
|
...helpers.DEFAULT_DECOMPOSE_OPTIONS,
|
|
45
45
|
...options,
|
|
46
46
|
};
|
|
47
|
-
if (entries1.length == 0)
|
|
47
|
+
if (entries1.length == 0) {
|
|
48
|
+
if (Array.isArray(val))
|
|
49
|
+
return [];
|
|
48
50
|
return {};
|
|
51
|
+
}
|
|
49
52
|
const regexDel = new RegExp(constants_strings.DELIMITER, 'g');
|
|
50
53
|
const regexLeft = new RegExp(constants_strings.LEFT_BRACKET, 'g');
|
|
51
54
|
const regexRight = new RegExp(constants_strings.RIGHT_BRACKET, 'g');
|
package/lib/decompose.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decompose.cjs","sources":["../src/decompose.ts"],"sourcesContent":["import {\n DELIMITER,\n LEFT_BRACKET,\n RIGHT_BRACKET,\n} from './constants/strings';\nimport { DEFAULT_DECOMPOSE_OPTIONS, isPrimitive } from './helpers';\nimport type { Decompose, DecomposeOptions } from './types.types';\n\nfunction ddecompose(\n arg: any,\n prev = '',\n options: DecomposeOptions = DEFAULT_DECOMPOSE_OPTIONS,\n) {\n const { object } = {\n ...DEFAULT_DECOMPOSE_OPTIONS,\n ...options,\n };\n const canAddObjectKeys = object === 'both' || object === 'object';\n const canAddKeys = object === 'both' || object === 'key';\n\n const _prev = prev ? prev + DELIMITER : '';\n const output: [string, any][] = [];\n\n const isArray = Array.isArray(arg);\n if (isArray) {\n if (canAddObjectKeys) output.push([`${prev}`, arg]);\n\n arg.forEach((item, index) => {\n const values = ddecompose(\n item,\n `${_prev}${LEFT_BRACKET}${index}${RIGHT_BRACKET}`,\n options,\n );\n output.push(...values);\n });\n return output;\n }\n\n const isPrimit = isPrimitive(arg);\n if (isPrimit) {\n const isFirst = !prev.includes(DELIMITER);\n if (canAddKeys || isFirst) output.push([`${prev}`, arg]);\n return output;\n }\n\n if (canAddObjectKeys && prev !== '') output.push([`${prev}`, arg]);\n\n const entries1 = Object.entries(arg);\n entries1.forEach(([key, value]) => {\n const values = ddecompose(value, `${_prev}${key}`, options);\n output.push(...values);\n });\n\n return output;\n}\n\ntype Decompose_F = <\n T,\n O extends DecomposeOptions = typeof DEFAULT_DECOMPOSE_OPTIONS,\n>(\n val: T,\n options?: O,\n) => Decompose<T, O>;\ntype _Decompose_F = (val: any, options?: DecomposeOptions) => any;\n\nexport type Decomposer = Decompose_F & {\n strict: Decompose_F;\n low: _Decompose_F;\n};\n\nconst _decompose: _Decompose_F = (val, options) => {\n const entries1 = ddecompose(val, '', options);\n\n const { sep, start } = {\n ...DEFAULT_DECOMPOSE_OPTIONS,\n ...options,\n };\n if (entries1.length == 0) return {};\n\n const regexDel = new RegExp(DELIMITER, 'g');\n const regexLeft = new RegExp(LEFT_BRACKET, 'g');\n const regexRight = new RegExp(RIGHT_BRACKET, 'g');\n const entries2 = entries1.map(([__key, value]) => {\n const _key = __key\n .replace(regexDel, sep)\n .replace(regexLeft, `[`)\n .replace(regexRight, `]`);\n const key = start ? `${sep}${_key}` : _key;\n return [key, value];\n });\n\n const output = Object.fromEntries(entries2);\n return output;\n};\n\n/* v8 ignore next 1 */\nexport const decompose: Decomposer = (val, options) =>\n _decompose(val, options);\ndecompose.low = _decompose;\ndecompose.strict = _decompose;\n"],"names":["DEFAULT_DECOMPOSE_OPTIONS","DELIMITER","LEFT_BRACKET","RIGHT_BRACKET","isPrimitive"],"mappings":";;;;;AAQA,SAAS,UAAU,CACjB,GAAQ,EACR,IAAI,GAAG,EAAE,EACT,OAAA,GAA4BA,iCAAyB,EAAA;
|
|
1
|
+
{"version":3,"file":"decompose.cjs","sources":["../src/decompose.ts"],"sourcesContent":["import {\n DELIMITER,\n LEFT_BRACKET,\n RIGHT_BRACKET,\n} from './constants/strings';\nimport { DEFAULT_DECOMPOSE_OPTIONS, isPrimitive } from './helpers';\nimport type { Decompose, DecomposeOptions } from './types.types';\n\nfunction ddecompose(\n arg: any,\n prev = '',\n options: DecomposeOptions = DEFAULT_DECOMPOSE_OPTIONS,\n first = true,\n) {\n const { object } = {\n ...DEFAULT_DECOMPOSE_OPTIONS,\n ...options,\n };\n const canAddObjectKeys = object === 'both' || object === 'object';\n const canAddKeys = object === 'both' || object === 'key';\n\n const _prev = prev ? prev + DELIMITER : '';\n const output: [string, any][] = [];\n\n const isArray = Array.isArray(arg);\n if (isArray) {\n if (canAddObjectKeys && !first) output.push([`${prev}`, arg]);\n\n arg.forEach((item, index) => {\n const values = ddecompose(\n item,\n `${_prev}${LEFT_BRACKET}${index}${RIGHT_BRACKET}`,\n options,\n false,\n );\n output.push(...values);\n });\n return output;\n }\n\n const isPrimit = isPrimitive(arg);\n if (isPrimit) {\n const isFirst = !prev.includes(DELIMITER);\n if (canAddKeys || isFirst) output.push([`${prev}`, arg]);\n return output;\n }\n\n if (canAddObjectKeys && prev !== '') output.push([`${prev}`, arg]);\n\n const entries1 = Object.entries(arg);\n entries1.forEach(([key, value]) => {\n const values = ddecompose(value, `${_prev}${key}`, options, false);\n output.push(...values);\n });\n\n return output;\n}\n\ntype Decompose_F = <\n T,\n const O extends DecomposeOptions = typeof DEFAULT_DECOMPOSE_OPTIONS,\n>(\n val: T,\n options?: O,\n) => Decompose<T, O>;\ntype _Decompose_F = (val: any, options?: DecomposeOptions) => any;\n\nexport type Decomposer = Decompose_F & {\n strict: Decompose_F;\n low: _Decompose_F;\n};\n\nconst _decompose: _Decompose_F = (val, options) => {\n const entries1 = ddecompose(val, '', options);\n\n const { sep, start } = {\n ...DEFAULT_DECOMPOSE_OPTIONS,\n ...options,\n };\n if (entries1.length == 0) {\n if (Array.isArray(val)) return [];\n return {};\n }\n\n const regexDel = new RegExp(DELIMITER, 'g');\n const regexLeft = new RegExp(LEFT_BRACKET, 'g');\n const regexRight = new RegExp(RIGHT_BRACKET, 'g');\n const entries2 = entries1.map(([__key, value]) => {\n const _key = __key\n .replace(regexDel, sep)\n .replace(regexLeft, `[`)\n .replace(regexRight, `]`);\n const key = start ? `${sep}${_key}` : _key;\n return [key, value];\n });\n\n const output = Object.fromEntries(entries2);\n return output;\n};\n\n/* v8 ignore next 1 */\nexport const decompose: Decomposer = (val, options) =>\n _decompose(val, options);\ndecompose.low = _decompose;\ndecompose.strict = _decompose;\n"],"names":["DEFAULT_DECOMPOSE_OPTIONS","DELIMITER","LEFT_BRACKET","RIGHT_BRACKET","isPrimitive"],"mappings":"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"}
|
package/lib/decompose.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DEFAULT_DECOMPOSE_OPTIONS } from './helpers';
|
|
2
2
|
import type { Decompose, DecomposeOptions } from './types.types';
|
|
3
|
-
type Decompose_F = <T, O extends DecomposeOptions = typeof DEFAULT_DECOMPOSE_OPTIONS>(val: T, options?: O) => Decompose<T, O>;
|
|
3
|
+
type Decompose_F = <T, const O extends DecomposeOptions = typeof DEFAULT_DECOMPOSE_OPTIONS>(val: T, options?: O) => Decompose<T, O>;
|
|
4
4
|
type _Decompose_F = (val: any, options?: DecomposeOptions) => any;
|
|
5
5
|
export type Decomposer = Decompose_F & {
|
|
6
6
|
strict: Decompose_F;
|
package/lib/decompose.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decompose.d.ts","sourceRoot":"","sources":["../src/decompose.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,yBAAyB,EAAe,MAAM,WAAW,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"decompose.d.ts","sourceRoot":"","sources":["../src/decompose.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,yBAAyB,EAAe,MAAM,WAAW,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAoDjE,KAAK,WAAW,GAAG,CACjB,CAAC,EACD,KAAK,CAAC,CAAC,SAAS,gBAAgB,GAAG,OAAO,yBAAyB,EAEnE,GAAG,EAAE,CAAC,EACN,OAAO,CAAC,EAAE,CAAC,KACR,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,KAAK,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,GAAG,CAAC;AAElE,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG;IACrC,MAAM,EAAE,WAAW,CAAC;IACpB,GAAG,EAAE,YAAY,CAAC;CACnB,CAAC;AA+BF,eAAO,MAAM,SAAS,EAAE,UACE,CAAC"}
|
package/lib/decompose.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LEFT_BRACKET, RIGHT_BRACKET, DELIMITER } from './constants/strings.js';
|
|
2
2
|
import { DEFAULT_DECOMPOSE_OPTIONS, isPrimitive } from './helpers.js';
|
|
3
3
|
|
|
4
|
-
function ddecompose(arg, prev = '', options = DEFAULT_DECOMPOSE_OPTIONS) {
|
|
4
|
+
function ddecompose(arg, prev = '', options = DEFAULT_DECOMPOSE_OPTIONS, first = true) {
|
|
5
5
|
const { object } = {
|
|
6
6
|
...DEFAULT_DECOMPOSE_OPTIONS,
|
|
7
7
|
...options,
|
|
@@ -12,10 +12,10 @@ function ddecompose(arg, prev = '', options = DEFAULT_DECOMPOSE_OPTIONS) {
|
|
|
12
12
|
const output = [];
|
|
13
13
|
const isArray = Array.isArray(arg);
|
|
14
14
|
if (isArray) {
|
|
15
|
-
if (canAddObjectKeys)
|
|
15
|
+
if (canAddObjectKeys && !first)
|
|
16
16
|
output.push([`${prev}`, arg]);
|
|
17
17
|
arg.forEach((item, index) => {
|
|
18
|
-
const values = ddecompose(item, `${_prev}${LEFT_BRACKET}${index}${RIGHT_BRACKET}`, options);
|
|
18
|
+
const values = ddecompose(item, `${_prev}${LEFT_BRACKET}${index}${RIGHT_BRACKET}`, options, false);
|
|
19
19
|
output.push(...values);
|
|
20
20
|
});
|
|
21
21
|
return output;
|
|
@@ -31,7 +31,7 @@ function ddecompose(arg, prev = '', options = DEFAULT_DECOMPOSE_OPTIONS) {
|
|
|
31
31
|
output.push([`${prev}`, arg]);
|
|
32
32
|
const entries1 = Object.entries(arg);
|
|
33
33
|
entries1.forEach(([key, value]) => {
|
|
34
|
-
const values = ddecompose(value, `${_prev}${key}`, options);
|
|
34
|
+
const values = ddecompose(value, `${_prev}${key}`, options, false);
|
|
35
35
|
output.push(...values);
|
|
36
36
|
});
|
|
37
37
|
return output;
|
|
@@ -42,8 +42,11 @@ const _decompose = (val, options) => {
|
|
|
42
42
|
...DEFAULT_DECOMPOSE_OPTIONS,
|
|
43
43
|
...options,
|
|
44
44
|
};
|
|
45
|
-
if (entries1.length == 0)
|
|
45
|
+
if (entries1.length == 0) {
|
|
46
|
+
if (Array.isArray(val))
|
|
47
|
+
return [];
|
|
46
48
|
return {};
|
|
49
|
+
}
|
|
47
50
|
const regexDel = new RegExp(DELIMITER, 'g');
|
|
48
51
|
const regexLeft = new RegExp(LEFT_BRACKET, 'g');
|
|
49
52
|
const regexRight = new RegExp(RIGHT_BRACKET, 'g');
|
package/lib/decompose.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decompose.js","sources":["../src/decompose.ts"],"sourcesContent":["import {\n DELIMITER,\n LEFT_BRACKET,\n RIGHT_BRACKET,\n} from './constants/strings';\nimport { DEFAULT_DECOMPOSE_OPTIONS, isPrimitive } from './helpers';\nimport type { Decompose, DecomposeOptions } from './types.types';\n\nfunction ddecompose(\n arg: any,\n prev = '',\n options: DecomposeOptions = DEFAULT_DECOMPOSE_OPTIONS,\n) {\n const { object } = {\n ...DEFAULT_DECOMPOSE_OPTIONS,\n ...options,\n };\n const canAddObjectKeys = object === 'both' || object === 'object';\n const canAddKeys = object === 'both' || object === 'key';\n\n const _prev = prev ? prev + DELIMITER : '';\n const output: [string, any][] = [];\n\n const isArray = Array.isArray(arg);\n if (isArray) {\n if (canAddObjectKeys) output.push([`${prev}`, arg]);\n\n arg.forEach((item, index) => {\n const values = ddecompose(\n item,\n `${_prev}${LEFT_BRACKET}${index}${RIGHT_BRACKET}`,\n options,\n );\n output.push(...values);\n });\n return output;\n }\n\n const isPrimit = isPrimitive(arg);\n if (isPrimit) {\n const isFirst = !prev.includes(DELIMITER);\n if (canAddKeys || isFirst) output.push([`${prev}`, arg]);\n return output;\n }\n\n if (canAddObjectKeys && prev !== '') output.push([`${prev}`, arg]);\n\n const entries1 = Object.entries(arg);\n entries1.forEach(([key, value]) => {\n const values = ddecompose(value, `${_prev}${key}`, options);\n output.push(...values);\n });\n\n return output;\n}\n\ntype Decompose_F = <\n T,\n O extends DecomposeOptions = typeof DEFAULT_DECOMPOSE_OPTIONS,\n>(\n val: T,\n options?: O,\n) => Decompose<T, O>;\ntype _Decompose_F = (val: any, options?: DecomposeOptions) => any;\n\nexport type Decomposer = Decompose_F & {\n strict: Decompose_F;\n low: _Decompose_F;\n};\n\nconst _decompose: _Decompose_F = (val, options) => {\n const entries1 = ddecompose(val, '', options);\n\n const { sep, start } = {\n ...DEFAULT_DECOMPOSE_OPTIONS,\n ...options,\n };\n if (entries1.length == 0) return {};\n\n const regexDel = new RegExp(DELIMITER, 'g');\n const regexLeft = new RegExp(LEFT_BRACKET, 'g');\n const regexRight = new RegExp(RIGHT_BRACKET, 'g');\n const entries2 = entries1.map(([__key, value]) => {\n const _key = __key\n .replace(regexDel, sep)\n .replace(regexLeft, `[`)\n .replace(regexRight, `]`);\n const key = start ? `${sep}${_key}` : _key;\n return [key, value];\n });\n\n const output = Object.fromEntries(entries2);\n return output;\n};\n\n/* v8 ignore next 1 */\nexport const decompose: Decomposer = (val, options) =>\n _decompose(val, options);\ndecompose.low = _decompose;\ndecompose.strict = _decompose;\n"],"names":[],"mappings":";;;AAQA,SAAS,UAAU,CACjB,GAAQ,EACR,IAAI,GAAG,EAAE,EACT,OAAA,GAA4B,yBAAyB,EAAA;
|
|
1
|
+
{"version":3,"file":"decompose.js","sources":["../src/decompose.ts"],"sourcesContent":["import {\n DELIMITER,\n LEFT_BRACKET,\n RIGHT_BRACKET,\n} from './constants/strings';\nimport { DEFAULT_DECOMPOSE_OPTIONS, isPrimitive } from './helpers';\nimport type { Decompose, DecomposeOptions } from './types.types';\n\nfunction ddecompose(\n arg: any,\n prev = '',\n options: DecomposeOptions = DEFAULT_DECOMPOSE_OPTIONS,\n first = true,\n) {\n const { object } = {\n ...DEFAULT_DECOMPOSE_OPTIONS,\n ...options,\n };\n const canAddObjectKeys = object === 'both' || object === 'object';\n const canAddKeys = object === 'both' || object === 'key';\n\n const _prev = prev ? prev + DELIMITER : '';\n const output: [string, any][] = [];\n\n const isArray = Array.isArray(arg);\n if (isArray) {\n if (canAddObjectKeys && !first) output.push([`${prev}`, arg]);\n\n arg.forEach((item, index) => {\n const values = ddecompose(\n item,\n `${_prev}${LEFT_BRACKET}${index}${RIGHT_BRACKET}`,\n options,\n false,\n );\n output.push(...values);\n });\n return output;\n }\n\n const isPrimit = isPrimitive(arg);\n if (isPrimit) {\n const isFirst = !prev.includes(DELIMITER);\n if (canAddKeys || isFirst) output.push([`${prev}`, arg]);\n return output;\n }\n\n if (canAddObjectKeys && prev !== '') output.push([`${prev}`, arg]);\n\n const entries1 = Object.entries(arg);\n entries1.forEach(([key, value]) => {\n const values = ddecompose(value, `${_prev}${key}`, options, false);\n output.push(...values);\n });\n\n return output;\n}\n\ntype Decompose_F = <\n T,\n const O extends DecomposeOptions = typeof DEFAULT_DECOMPOSE_OPTIONS,\n>(\n val: T,\n options?: O,\n) => Decompose<T, O>;\ntype _Decompose_F = (val: any, options?: DecomposeOptions) => any;\n\nexport type Decomposer = Decompose_F & {\n strict: Decompose_F;\n low: _Decompose_F;\n};\n\nconst _decompose: _Decompose_F = (val, options) => {\n const entries1 = ddecompose(val, '', options);\n\n const { sep, start } = {\n ...DEFAULT_DECOMPOSE_OPTIONS,\n ...options,\n };\n if (entries1.length == 0) {\n if (Array.isArray(val)) return [];\n return {};\n }\n\n const regexDel = new RegExp(DELIMITER, 'g');\n const regexLeft = new RegExp(LEFT_BRACKET, 'g');\n const regexRight = new RegExp(RIGHT_BRACKET, 'g');\n const entries2 = entries1.map(([__key, value]) => {\n const _key = __key\n .replace(regexDel, sep)\n .replace(regexLeft, `[`)\n .replace(regexRight, `]`);\n const key = start ? `${sep}${_key}` : _key;\n return [key, value];\n });\n\n const output = Object.fromEntries(entries2);\n return output;\n};\n\n/* v8 ignore next 1 */\nexport const decompose: Decomposer = (val, options) =>\n _decompose(val, options);\ndecompose.low = _decompose;\ndecompose.strict = _decompose;\n"],"names":[],"mappings":"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"}
|
package/lib/types.types.d.ts
CHANGED
|
@@ -20,12 +20,21 @@ export type SeparateUndefinedAndRequiredKeys<T> = {
|
|
|
20
20
|
};
|
|
21
21
|
};
|
|
22
22
|
type WO = 'key' | 'object' | 'both';
|
|
23
|
+
type _DecomposeTupleElement<TK2, sep extends string, wo extends WO, KeyPrefix extends string> = TK2 extends types.AnyArray<infer A> ? number extends TK2['length'] ? // Dynamic array inside tuple element - use UnionToIntersection to preserve template literal keys
|
|
24
|
+
(wo extends 'object' | 'both' ? Record<KeyPrefix, TK2> : EmptyObject) & (A extends Ru ? types.UnionToIntersection<_Decompose<A, sep, wo, `${KeyPrefix}${sep}[${number}]${sep}`>> & (wo extends 'object' | 'both' ? {
|
|
25
|
+
[Key in `${KeyPrefix}${sep}[${number}]`]: A;
|
|
26
|
+
} : EmptyObject) : wo extends 'key' | 'both' ? {
|
|
27
|
+
[Key in `${KeyPrefix}${sep}[${number}]`]: A;
|
|
28
|
+
} : EmptyObject) : // Nested tuple inside tuple element
|
|
29
|
+
_DecomposeTupleRec<TK2, sep, wo, KeyPrefix> & (wo extends 'object' | 'both' ? Record<KeyPrefix, TK2> : EmptyObject) : TK2 extends Ru ? types.UnionToIntersection<_Decompose<TK2, sep, wo, `${KeyPrefix}${sep}`>> & (wo extends 'object' | 'both' ? Record<KeyPrefix, TK2> : EmptyObject) : wo extends 'key' | 'both' ? Record<KeyPrefix, TK2> : EmptyObject;
|
|
30
|
+
type _DecomposeTupleRec<Tk extends readonly unknown[], sep extends string, wo extends WO, Prefix extends string, I extends readonly unknown[] = []> = I['length'] extends Tk['length'] ? EmptyObject : _DecomposeTupleElement<Tk[I['length']], sep, wo, `${Prefix}${sep}[${I['length']}]`> & _DecomposeTupleRec<Tk, sep, wo, Prefix, [...I, unknown]>;
|
|
23
31
|
type _Decompose<T, sep extends string = '.', wo extends WO = 'key', Remaining extends string = ''> = {
|
|
24
|
-
[k in Exclude<keyof T, undefined>]: T[k] extends infer Tk ? types._UnionToIntersection2<Tk extends types.AnyArray<infer A> ? number extends Tk['length'] ? (wo extends 'object' | 'both' ? Record<`${Remaining}${k & string}`, Tk> : EmptyObject) & (wo extends '
|
|
32
|
+
[k in Exclude<keyof T, undefined>]: T[k] extends infer Tk ? types._UnionToIntersection2<Tk extends types.AnyArray<infer A> ? number extends Tk['length'] ? (wo extends 'object' | 'both' ? Record<`${Remaining}${k & string}`, Tk> : EmptyObject) & (A extends Ru ? types.UnionToIntersection<_Decompose<A, sep, wo, `${Remaining}${k & string}${sep}[${number}]${sep}`>> & (wo extends 'object' | 'both' ? {
|
|
25
33
|
[Key in `${Remaining}${k & string}${sep}[${number}]`]: A;
|
|
26
|
-
} : EmptyObject) :
|
|
27
|
-
[Key in
|
|
28
|
-
}
|
|
34
|
+
} : EmptyObject) : wo extends 'key' | 'both' ? {
|
|
35
|
+
[Key in `${Remaining}${k & string}${sep}[${number}]`]: A;
|
|
36
|
+
} : EmptyObject) : // Tuple - use recursive helper that produces intersection directly
|
|
37
|
+
_DecomposeTupleRec<Tk, sep, wo, `${Remaining}${k & string}`> & (wo extends 'object' | 'both' ? Record<`${Remaining}${k & string}`, Tk> : EmptyObject) : Tk extends Ru ? EmptyObject extends Required<Tk> ? Record<`${Remaining}${k & string}`, Tk> : _Decompose<Tk, sep, wo, `${Remaining}${k & string}${sep}`> & (wo extends 'object' | 'both' ? Record<`${Remaining}${k & string}`, Tk> : EmptyObject) : wo extends 'key' | 'both' ? Record<`${Remaining}${k & string}`, Tk> : never> : never;
|
|
29
38
|
}[Exclude<keyof T, undefined>];
|
|
30
39
|
export type DecomposeOptions = {
|
|
31
40
|
sep?: string;
|
|
@@ -33,9 +42,11 @@ export type DecomposeOptions = {
|
|
|
33
42
|
start?: boolean;
|
|
34
43
|
};
|
|
35
44
|
type DefaultDecomposeOptions = typeof DEFAULT_DECOMPOSE_OPTIONS;
|
|
36
|
-
export type Decompose<T, O extends DecomposeOptions = DefaultDecomposeOptions, sep extends string = O['sep'] extends string ? O['sep'] : DefaultDecomposeOptions['sep']> = EmptyObject extends Required<T> ? EmptyObject :
|
|
37
|
-
|
|
38
|
-
} :
|
|
45
|
+
export type Decompose<T, O extends DecomposeOptions = DefaultDecomposeOptions, sep extends string = O['sep'] extends string ? O['sep'] : DefaultDecomposeOptions['sep']> = EmptyObject extends Required<T> ? EmptyObject : T extends types.AnyArray ? types.UnionToIntersection<_Decompose<{
|
|
46
|
+
' ': T;
|
|
47
|
+
}, sep, O['object'] extends WO ? O['object'] : DefaultDecomposeOptions['object'], O['start'] extends infer S extends boolean ? S extends true ? sep : '' : sep>> extends infer P1 ? {
|
|
48
|
+
[K in keyof P1 as K extends `${sep} ${infer P}` ? P extends '' ? never : P : never]: P1[K];
|
|
49
|
+
} : never : types.UnionToIntersection<_Decompose<T, sep, O['object'] extends WO ? O['object'] : DefaultDecomposeOptions['object'], O['start'] extends infer S extends boolean ? S extends true ? sep : '' : sep>> extends infer P ? P : never;
|
|
39
50
|
type _ExcludeFrom<S extends string, T extends string, Delimiter extends string = '.'> = Exclude<S extends `${string}${T}${infer V}` ? _ExcludeFrom<V, T, Delimiter> : S, `${string}${string}${Delimiter}${string}` | ''>;
|
|
40
51
|
export type ExtractEndsFrom<S extends string, T extends string, Delimiter extends string = '.'> = Extract<S, `${string}${Delimiter}${T}${_ExcludeFrom<S, T, Delimiter>}`>;
|
|
41
52
|
export type ExcludeFrom<S extends string, T extends string, Delimiter extends string = '.'> = S extends `${infer P}${Delimiter}${T}${infer V}` ? ExcludeFrom<`${P}${V}`, T, Delimiter> : S;
|
package/lib/types.types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.types.d.ts","sourceRoot":"","sources":["../src/types.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EACV,yBAAyB,EACzB,oBAAoB,EACrB,MAAM,WAAW,CAAC;AAEnB,MAAM,MAAM,aAAa,CACvB,CAAC,SAAS,UAAU,EACpB,GAAG,GAAG,MAAM,CAAC,IACX,CAAC,SAAS,aAAa,GACvB,GAAG,SAAS,MAAM,GAChB,CAAC,CAAC,GAAG,CAAC,SAAS,aAAa,GAC1B,GAAG,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,GACvC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,GAAG,GACnC,KAAK,GACP,CAAC,CAAC;AAEN,MAAM,MAAM,YAAY,CACtB,CAAC,SAAS,KAAK,CAAC,UAAU,EAC1B,aAAa,SAAS,OAAO,GAAG,IAAI,EACpC,GAAG,SAAS,MAAM,CAAC,GAAG,MAAM,CAAC,IAC3B,GAAG,SAAS,MAAM,GAClB,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK,CAAC,UAAU,GAEnC,GAAG,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,MAAM,EAAE,GAClE,CAAC,aAAa,SAAS,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,GAC9C,GAAG,GACL,KAAK,CAAC;AAGV,MAAM,MAAM,WAAW,GAAG,EAAE,CAAC;AAG7B,MAAM,MAAM,+BAA+B,CAAC,CAAC,IAAI;IAC/C,SAAS,EAAE;SACR,CAAC,IAAI,MAAM,CAAC,IAAI,WAAW,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACnE,CAAC;IACF,SAAS,EAAE;SACR,CAAC,IAAI,MAAM,CAAC,IAAI,WAAW,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;KACnE,CAAC;CACH,CAAC;
|
|
1
|
+
{"version":3,"file":"types.types.d.ts","sourceRoot":"","sources":["../src/types.types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bemedev/decompose",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "Decompose object and so more",
|
|
5
5
|
"author": {
|
|
6
6
|
"email": "bri_lvi@icloud.com",
|
|
@@ -62,21 +62,21 @@
|
|
|
62
62
|
"@bemedev/vitest-alias": "^0.0.3",
|
|
63
63
|
"@bemedev/vitest-exclude": "^0.1.1",
|
|
64
64
|
"@bemedev/vitest-extended": "^1.5.3",
|
|
65
|
-
"@eslint/eslintrc": "^3.3.
|
|
66
|
-
"@eslint/js": "^9.39.
|
|
67
|
-
"@types/node": "^
|
|
68
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
69
|
-
"@typescript-eslint/parser": "^8.
|
|
65
|
+
"@eslint/eslintrc": "^3.3.3",
|
|
66
|
+
"@eslint/js": "^9.39.2",
|
|
67
|
+
"@types/node": "^25.0.2",
|
|
68
|
+
"@typescript-eslint/eslint-plugin": "^8.50.0",
|
|
69
|
+
"@typescript-eslint/parser": "^8.50.0",
|
|
70
70
|
"@vitest/coverage-v8": "^3.2.4",
|
|
71
|
-
"eslint": "^9.39.
|
|
71
|
+
"eslint": "^9.39.2",
|
|
72
72
|
"glob": "^13.0.0",
|
|
73
73
|
"globals": "^16.5.0",
|
|
74
74
|
"husky": "^9.1.7",
|
|
75
|
-
"immer": "^11.0.
|
|
75
|
+
"immer": "^11.0.1",
|
|
76
76
|
"onchange": "^7.1.0",
|
|
77
|
-
"prettier": "^3.
|
|
77
|
+
"prettier": "^3.7.4",
|
|
78
78
|
"pretty-quick": "^4.2.2",
|
|
79
|
-
"rollup": "^4.53.
|
|
79
|
+
"rollup": "^4.53.4",
|
|
80
80
|
"rollup-plugin-tsc-alias": "^1.1.4",
|
|
81
81
|
"rollup-plugin-typescript2": "^0.36.0",
|
|
82
82
|
"tslib": "^2.8.1",
|