ts-data-forge 6.1.0 → 6.2.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/dist/array/impl/array-utils-modification.d.mts.map +1 -1
- package/dist/array/impl/array-utils-modification.mjs.map +1 -1
- package/dist/array/impl/array-utils-reducing-value.d.mts +1 -1
- package/dist/globals.d.mts +1 -2
- package/dist/guard/has-key.d.mts +1 -4
- package/dist/guard/has-key.d.mts.map +1 -1
- package/dist/object/object.d.mts.map +1 -1
- package/dist/object/object.mjs.map +1 -1
- package/dist/others/unknown-to-string.d.mts +5 -0
- package/dist/others/unknown-to-string.d.mts.map +1 -1
- package/dist/others/unknown-to-string.mjs +40 -8
- package/dist/others/unknown-to-string.mjs.map +1 -1
- package/package.json +16 -15
- package/src/array/impl/array-utils-modification.mts +19 -38
- package/src/array/impl/array-utils-reducing-value.mts +1 -1
- package/src/globals.d.mts +1 -2
- package/src/guard/has-key.mts +3 -6
- package/src/object/object.mts +0 -1
- package/src/others/unknown-to-string.mts +52 -12
- package/src/others/unknown-to-string.test.mts +238 -60
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-utils-modification.d.mts","sourceRoot":"","sources":["../../../src/array/impl/array-utils-modification.mts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AACH,wBAAgB,GAAG,CAAC,KAAK,CAAC,EAAE,SAAS,SAAS,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAC3E,KAAK,EAAE,EAAE,EACT,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC,EACxB,QAAQ,EAAE,CAAC,GACV,iBAAiB,CAAC,EAAE,CAAC,SAAS,IAAI,
|
|
1
|
+
{"version":3,"file":"array-utils-modification.d.mts","sourceRoot":"","sources":["../../../src/array/impl/array-utils-modification.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-utils-modification.mjs","sources":["../../../src/array/impl/array-utils-modification.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"array-utils-modification.mjs","sources":["../../../src/array/impl/array-utils-modification.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -204,7 +204,7 @@ export declare function sum(array: readonly Uint[]): Uint;
|
|
|
204
204
|
export declare function sum(array: readonly Int[]): Int;
|
|
205
205
|
export declare function sum(array: readonly number[]): number;
|
|
206
206
|
/**
|
|
207
|
-
* Calculates the sum of
|
|
207
|
+
* Calculates the sum of values in an array by applying a mapping function to each element.
|
|
208
208
|
*
|
|
209
209
|
* @example
|
|
210
210
|
*
|
package/dist/globals.d.mts
CHANGED
|
@@ -13,8 +13,7 @@ type ArgArrayIndex<Ar extends readonly unknown[]> =
|
|
|
13
13
|
|
|
14
14
|
type ArgArrayIndexWithNegative<Ar extends readonly unknown[]> =
|
|
15
15
|
IsFixedLengthList<Ar> extends true
|
|
16
|
-
?
|
|
17
|
-
IndexOfTuple<[...Ar, 0]> | NegativeIndexOfTuple<Ar>
|
|
16
|
+
? IndexOfTuple<[...Ar, 0]> | NegativeIndexOfTuple<Ar>
|
|
18
17
|
: SizeType.ArgArrWithNegative;
|
|
19
18
|
|
|
20
19
|
// https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/length
|
package/dist/guard/has-key.d.mts
CHANGED
|
@@ -45,8 +45,5 @@ export declare const hasKey: <const R extends UnknownRecord, const K extends Pro
|
|
|
45
45
|
* If none of the elements in the union contain K as a key, returns `ReadonlyRecord<K, unknown>`.
|
|
46
46
|
* The result is made readonly.
|
|
47
47
|
*/
|
|
48
|
-
export type HasKeyReturnType<R extends UnknownRecord, K extends PropertyKey> = R extends R ? K extends keyof R ? string extends keyof R ?
|
|
49
|
-
ReadonlyRecord<K, R[keyof R]> & R : number extends keyof R ? // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
|
|
50
|
-
ReadonlyRecord<K, R[keyof R]> & R : symbol extends keyof R ? // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
|
|
51
|
-
ReadonlyRecord<K, R[keyof R]> & R : R : never : never;
|
|
48
|
+
export type HasKeyReturnType<R extends UnknownRecord, K extends PropertyKey> = R extends R ? K extends keyof R ? string extends keyof R ? ReadonlyRecord<K, R[keyof R]> & R : number extends keyof R ? ReadonlyRecord<K, R[keyof R]> & R : symbol extends keyof R ? ReadonlyRecord<K, R[keyof R]> & R : R : never : never;
|
|
52
49
|
//# sourceMappingURL=has-key.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-key.d.mts","sourceRoot":"","sources":["../../src/guard/has-key.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,eAAO,MAAM,MAAM,GACjB,KAAK,CAAC,CAAC,SAAS,aAAa,EAC7B,KAAK,CAAC,CAAC,SAAS,WAAW,EAE3B,KAAK,CAAC,EACN,KAAK,CAAC,KACL,GAAG,IAAI,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAA4B,CAAC;AAE5D;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,CAC1B,CAAC,SAAS,aAAa,EACvB,CAAC,SAAS,WAAW,IACnB,CAAC,SAAS,CAAC,GACX,CAAC,SAAS,MAAM,CAAC,GACf,MAAM,SAAS,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"has-key.d.mts","sourceRoot":"","sources":["../../src/guard/has-key.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,eAAO,MAAM,MAAM,GACjB,KAAK,CAAC,CAAC,SAAS,aAAa,EAC7B,KAAK,CAAC,CAAC,SAAS,WAAW,EAE3B,KAAK,CAAC,EACN,KAAK,CAAC,KACL,GAAG,IAAI,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAA4B,CAAC;AAE5D;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,CAC1B,CAAC,SAAS,aAAa,EACvB,CAAC,SAAS,WAAW,IACnB,CAAC,SAAS,CAAC,GACX,CAAC,SAAS,MAAM,CAAC,GACf,MAAM,SAAS,MAAM,CAAC,GACpB,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GACjC,MAAM,SAAS,MAAM,CAAC,GACpB,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GACjC,MAAM,SAAS,MAAM,CAAC,GACpB,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GACjC,CAAC,GACP,KAAK,GACP,KAAK,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.d.mts","sourceRoot":"","sources":["../../src/object/object.mts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"object.d.mts","sourceRoot":"","sources":["../../src/object/object.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.mjs","sources":["../../src/object/object.mts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;;AAOG;AACG,IAAW;AAAjB,CAAA,UAAiB,GAAG,EAAA;AAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCG;IACU,GAAA,CAAA,SAAS,GAAG,CACvB,CAAgB,EAChB,CAAgB,EAChB,EAAA,GAA0C,MAAM,CAAC,EAAE,KACxC;QACX,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAElC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAElC,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;AAAE,YAAA,OAAO,KAAK;QAErD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChD,IAAA,CAAC;IAyDD,SAAgB,IAAI,CAIlB,GAAG,IAA8D,EAAA;AAIjE,QAAA,QAAQ,IAAI,CAAC,MAAM;YACjB,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;AAE3B,gBAAA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAU,IAAI,CAAC;gBAEtC;;AAEE,gBAAA,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAClD;YAEd;YAEA,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI;gBAEnB,OAAO,CAAC,MAAS,KAAK,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;YAC1C;;IAEJ;AA5BgB,IAAA,GAAA,CAAA,IAAI,OA4BnB;IAyDD,SAAgB,IAAI,CAIlB,GAAG,IAEwC,EAAA;AAI3C,QAAA,QAAQ,IAAI,CAAC,MAAM;YACjB,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;AAE3B,gBAAA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAU,IAAI,CAAC;gBAEtC;;AAEE,gBAAA,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACnD;YAEd;YAEA,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI;gBAEnB,OAAO,CAA2B,MAAU,KAAI;;oBAE9C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,IAA6B,CAGxD;AAED,oBAAA,OAAO,MAAM;AACf,gBAAA,CAAC;YACH;;IAEJ;AAtCgB,IAAA,GAAA,CAAA,IAAI,OAsCnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CG;AACU,IAAA,GAAA,CAAA,WAAW,GAAG,CAGzB,OAAgB;;AAWhB,IAAA,MAAM,CAAC,WAAW,CAAC,OAAO,CAAU;
|
|
1
|
+
{"version":3,"file":"object.mjs","sources":["../../src/object/object.mts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;;AAOG;AACG,IAAW;AAAjB,CAAA,UAAiB,GAAG,EAAA;AAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCG;IACU,GAAA,CAAA,SAAS,GAAG,CACvB,CAAgB,EAChB,CAAgB,EAChB,EAAA,GAA0C,MAAM,CAAC,EAAE,KACxC;QACX,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAElC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAElC,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;AAAE,YAAA,OAAO,KAAK;QAErD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChD,IAAA,CAAC;IAyDD,SAAgB,IAAI,CAIlB,GAAG,IAA8D,EAAA;AAIjE,QAAA,QAAQ,IAAI,CAAC,MAAM;YACjB,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;AAE3B,gBAAA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAU,IAAI,CAAC;gBAEtC;;AAEE,gBAAA,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAClD;YAEd;YAEA,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI;gBAEnB,OAAO,CAAC,MAAS,KAAK,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;YAC1C;;IAEJ;AA5BgB,IAAA,GAAA,CAAA,IAAI,OA4BnB;IAyDD,SAAgB,IAAI,CAIlB,GAAG,IAEwC,EAAA;AAI3C,QAAA,QAAQ,IAAI,CAAC,MAAM;YACjB,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;AAE3B,gBAAA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAU,IAAI,CAAC;gBAEtC;;AAEE,gBAAA,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACnD;YAEd;YAEA,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI;gBAEnB,OAAO,CAA2B,MAAU,KAAI;;oBAE9C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,IAA6B,CAGxD;AAED,oBAAA,OAAO,MAAM;AACf,gBAAA,CAAC;YACH;;IAEJ;AAtCgB,IAAA,GAAA,CAAA,IAAI,OAsCnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CG;AACU,IAAA,GAAA,CAAA,WAAW,GAAG,CAGzB,OAAgB;;AAWhB,IAAA,MAAM,CAAC,WAAW,CAAC,OAAO,CAAU;AA4ExC,CAAC,EApXgB,GAAG,KAAH,GAAG,GAAA,EAAA,CAAA,CAAA;;;;"}
|
|
@@ -14,6 +14,11 @@
|
|
|
14
14
|
* - Functions: converted to their string representation
|
|
15
15
|
* - null: returns "null" (not "null" from JSON)
|
|
16
16
|
* - undefined: returns "undefined"
|
|
17
|
+
* - Date: converted to ISO string
|
|
18
|
+
* - RegExp: converted to regex literal string
|
|
19
|
+
* - Map: converted to Map representation with entries
|
|
20
|
+
* - Set: converted to Set representation with values
|
|
21
|
+
* - Error: returns error message
|
|
17
22
|
* - Objects: JSON stringified (with optional pretty printing)
|
|
18
23
|
*
|
|
19
24
|
* @param value - The unknown value to convert to string
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unknown-to-string.d.mts","sourceRoot":"","sources":["../../src/others/unknown-to-string.mts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"unknown-to-string.d.mts","sourceRoot":"","sources":["../../src/others/unknown-to-string.mts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,eAAe,GAC1B,OAAO,OAAO,EACd,UAAU,OAAO,CAAC,QAAQ,CAAC;IAAE,iBAAiB,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC,KAC1D,MAuEF,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { isError } from '@sindresorhus/is';
|
|
2
|
-
import { isNonNullish } from '../guard/is-type.mjs';
|
|
1
|
+
import { isDate, isRegExp, isError, isMap, isSet } from '@sindresorhus/is';
|
|
3
2
|
|
|
4
3
|
/**
|
|
5
4
|
* Converts an unknown value to its string representation in a type-safe manner.
|
|
@@ -17,6 +16,11 @@ import { isNonNullish } from '../guard/is-type.mjs';
|
|
|
17
16
|
* - Functions: converted to their string representation
|
|
18
17
|
* - null: returns "null" (not "null" from JSON)
|
|
19
18
|
* - undefined: returns "undefined"
|
|
19
|
+
* - Date: converted to ISO string
|
|
20
|
+
* - RegExp: converted to regex literal string
|
|
21
|
+
* - Map: converted to Map representation with entries
|
|
22
|
+
* - Set: converted to Set representation with values
|
|
23
|
+
* - Error: returns error message
|
|
20
24
|
* - Objects: JSON stringified (with optional pretty printing)
|
|
21
25
|
*
|
|
22
26
|
* @param value - The unknown value to convert to string
|
|
@@ -41,23 +45,51 @@ const unknownToString = (value, options) => {
|
|
|
41
45
|
case 'symbol':
|
|
42
46
|
case 'function':
|
|
43
47
|
return value.toString();
|
|
44
|
-
case '
|
|
45
|
-
|
|
48
|
+
case 'undefined':
|
|
49
|
+
return 'undefined';
|
|
50
|
+
case 'object': {
|
|
51
|
+
if (value === null) {
|
|
46
52
|
return 'null';
|
|
47
53
|
}
|
|
48
54
|
try {
|
|
49
|
-
|
|
55
|
+
// Special handling for Date
|
|
56
|
+
if (isDate(value)) {
|
|
57
|
+
return value.toISOString();
|
|
58
|
+
}
|
|
59
|
+
// Special handling for RegExp
|
|
60
|
+
if (isRegExp(value)) {
|
|
61
|
+
return value.toString();
|
|
62
|
+
}
|
|
63
|
+
if (isError(value)) {
|
|
64
|
+
return value.message;
|
|
65
|
+
}
|
|
66
|
+
const prettyPrintObject = options?.prettyPrintObject === true;
|
|
67
|
+
// Special handling for Map
|
|
68
|
+
if (isMap(value)) {
|
|
69
|
+
const entries = Array.from(value.entries());
|
|
70
|
+
const entriesStr = prettyPrintObject
|
|
71
|
+
? JSON.stringify(entries, undefined, 2)
|
|
72
|
+
: JSON.stringify(entries);
|
|
73
|
+
return `Map(${entriesStr})`;
|
|
74
|
+
}
|
|
75
|
+
// Special handling for Set
|
|
76
|
+
if (isSet(value)) {
|
|
77
|
+
const values = Array.from(value.values());
|
|
78
|
+
const valuesStr = prettyPrintObject
|
|
79
|
+
? JSON.stringify(values, undefined, 2)
|
|
80
|
+
: JSON.stringify(values);
|
|
81
|
+
return `Set(${valuesStr})`;
|
|
82
|
+
}
|
|
83
|
+
return prettyPrintObject
|
|
50
84
|
? JSON.stringify(value, undefined, 2)
|
|
51
85
|
: JSON.stringify(value);
|
|
52
|
-
return stringified;
|
|
53
86
|
}
|
|
54
87
|
catch (error) {
|
|
55
88
|
return isError(error)
|
|
56
89
|
? error.message
|
|
57
90
|
: '[Circular or Non-serializable]';
|
|
58
91
|
}
|
|
59
|
-
|
|
60
|
-
return 'undefined';
|
|
92
|
+
}
|
|
61
93
|
}
|
|
62
94
|
};
|
|
63
95
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unknown-to-string.mjs","sources":["../../src/others/unknown-to-string.mts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"unknown-to-string.mjs","sources":["../../src/others/unknown-to-string.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCG;MACU,eAAe,GAAG,CAC7B,KAAc,EACd,OAA2D,KACjD;IACV,QAAQ,OAAO,KAAK;AAClB,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,KAAK;AAEd,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG;AAE/B,QAAA,KAAK,QAAQ;AACb,QAAA,KAAK,SAAS;AACd,QAAA,KAAK,QAAQ;AACb,QAAA,KAAK,UAAU;AACb,YAAA,OAAO,KAAK,CAAC,QAAQ,EAAE;AAEzB,QAAA,KAAK,WAAW;AACd,YAAA,OAAO,WAAW;QAEpB,KAAK,QAAQ,EAAE;AACb,YAAA,IAAI,KAAK,KAAK,IAAI,EAAE;AAClB,gBAAA,OAAO,MAAM;YACf;AAEA,YAAA,IAAI;;AAEF,gBAAA,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;AACjB,oBAAA,OAAO,KAAK,CAAC,WAAW,EAAE;gBAC5B;;AAGA,gBAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;AACnB,oBAAA,OAAO,KAAK,CAAC,QAAQ,EAAE;gBACzB;AAEA,gBAAA,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;oBAClB,OAAO,KAAK,CAAC,OAAO;gBACtB;AAEA,gBAAA,MAAM,iBAAiB,GAAG,OAAO,EAAE,iBAAiB,KAAK,IAAI;;AAG7D,gBAAA,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;oBAChB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;oBAE3C,MAAM,UAAU,GAAG;0BACf,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;AACtC,0BAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;oBAE3B,OAAO,CAAA,IAAA,EAAO,UAAU,CAAA,CAAA,CAAG;gBAC7B;;AAGA,gBAAA,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;oBAChB,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;oBAEzC,MAAM,SAAS,GAAG;0BACd,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;AACrC,0BAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;oBAE1B,OAAO,CAAA,IAAA,EAAO,SAAS,CAAA,CAAA,CAAG;gBAC5B;AAEA,gBAAA,OAAO;sBACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC;AACpC,sBAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAC3B;YAAE,OAAO,KAAK,EAAE;gBACd,OAAO,OAAO,CAAC,KAAK;sBAChB,KAAK,CAAC;sBACN,gCAAgC;YACtC;QACF;;AAEJ;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ts-data-forge",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.2.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -91,37 +91,38 @@
|
|
|
91
91
|
"@semantic-release/exec": "7.1.0",
|
|
92
92
|
"@semantic-release/git": "10.0.1",
|
|
93
93
|
"@semantic-release/github": "12.0.2",
|
|
94
|
-
"@semantic-release/npm": "13.1.
|
|
94
|
+
"@semantic-release/npm": "13.1.3",
|
|
95
95
|
"@semantic-release/release-notes-generator": "14.1.0",
|
|
96
|
-
"@types/node": "
|
|
96
|
+
"@types/node": "25.0.3",
|
|
97
97
|
"@types/react": "19.2.7",
|
|
98
|
-
"@vitest/browser-playwright": "4.0.
|
|
99
|
-
"@vitest/coverage-v8": "4.0.
|
|
100
|
-
"@vitest/ui": "4.0.
|
|
98
|
+
"@vitest/browser-playwright": "4.0.16",
|
|
99
|
+
"@vitest/coverage-v8": "4.0.16",
|
|
100
|
+
"@vitest/ui": "4.0.16",
|
|
101
101
|
"conventional-changelog-conventionalcommits": "9.1.0",
|
|
102
102
|
"cspell": "9.4.0",
|
|
103
|
-
"
|
|
104
|
-
"eslint
|
|
103
|
+
"dedent": "^1.7.1",
|
|
104
|
+
"eslint": "9.39.2",
|
|
105
|
+
"eslint-config-typed": "4.3.0",
|
|
105
106
|
"github-settings-as-code": "1.0.6",
|
|
106
|
-
"immer": "11.0
|
|
107
|
+
"immer": "11.1.0",
|
|
107
108
|
"jiti": "2.6.1",
|
|
108
|
-
"markdownlint": "0.
|
|
109
|
-
"markdownlint-cli2": "0.
|
|
109
|
+
"markdownlint": "0.40.0",
|
|
110
|
+
"markdownlint-cli2": "0.20.0",
|
|
110
111
|
"npm-run-all2": "8.0.4",
|
|
111
112
|
"playwright": "1.57.0",
|
|
112
113
|
"prettier": "3.7.4",
|
|
113
114
|
"prettier-plugin-organize-imports": "4.3.0",
|
|
114
115
|
"prettier-plugin-packagejson": "2.5.20",
|
|
115
|
-
"rollup": "4.
|
|
116
|
+
"rollup": "4.54.0",
|
|
116
117
|
"semantic-release": "25.0.2",
|
|
117
|
-
"ts-repo-utils": "
|
|
118
|
+
"ts-repo-utils": "8.0.0",
|
|
118
119
|
"tslib": "2.8.1",
|
|
119
120
|
"tsx": "4.21.0",
|
|
120
121
|
"typedoc": "0.28.15",
|
|
121
122
|
"typedoc-github-theme": "0.3.1",
|
|
122
123
|
"typescript": "5.9.3",
|
|
123
|
-
"vite": "7.
|
|
124
|
-
"vitest": "4.0.
|
|
124
|
+
"vite": "7.3.0",
|
|
125
|
+
"vitest": "4.0.16"
|
|
125
126
|
},
|
|
126
127
|
"peerDependencies": {
|
|
127
128
|
"typescript": ">=4.8"
|
|
@@ -20,13 +20,10 @@ export function set<const Ar extends readonly unknown[], const V = Ar[number]>(
|
|
|
20
20
|
index: ArgArrayIndex<Ar>,
|
|
21
21
|
newValue: V,
|
|
22
22
|
): IsFixedLengthList<Ar> extends true
|
|
23
|
-
?
|
|
24
|
-
Readonly<{ [K in keyof Ar]: Ar[K] | V }>
|
|
23
|
+
? Readonly<{ [K in keyof Ar]: Ar[K] | V }>
|
|
25
24
|
: Ar extends NonEmptyArray<unknown>
|
|
26
|
-
?
|
|
27
|
-
|
|
28
|
-
: // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
|
|
29
|
-
readonly (Ar[number] | V)[];
|
|
25
|
+
? NonEmptyArray<Ar[number] | V>
|
|
26
|
+
: readonly (Ar[number] | V)[];
|
|
30
27
|
|
|
31
28
|
// curried version
|
|
32
29
|
export function set<const V>(
|
|
@@ -35,13 +32,10 @@ export function set<const V>(
|
|
|
35
32
|
): <const Ar extends readonly unknown[]>(
|
|
36
33
|
array: Ar,
|
|
37
34
|
) => IsFixedLengthList<Ar> extends true
|
|
38
|
-
?
|
|
39
|
-
Readonly<{ [K in keyof Ar]: Ar[K] | V }>
|
|
35
|
+
? Readonly<{ [K in keyof Ar]: Ar[K] | V }>
|
|
40
36
|
: Ar extends NonEmptyArray<unknown>
|
|
41
|
-
?
|
|
42
|
-
|
|
43
|
-
: // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
|
|
44
|
-
readonly (Ar[number] | V)[];
|
|
37
|
+
? NonEmptyArray<Ar[number] | V>
|
|
38
|
+
: readonly (Ar[number] | V)[];
|
|
45
39
|
|
|
46
40
|
export function set<E, const V = E>(
|
|
47
41
|
...args:
|
|
@@ -92,13 +86,10 @@ export function toUpdated<
|
|
|
92
86
|
index: ArgArrayIndex<Ar>,
|
|
93
87
|
updater: (prev: Ar[number]) => V,
|
|
94
88
|
): IsFixedLengthList<Ar> extends true
|
|
95
|
-
?
|
|
96
|
-
Readonly<{ [K in keyof Ar]: Ar[K] | V }>
|
|
89
|
+
? Readonly<{ [K in keyof Ar]: Ar[K] | V }>
|
|
97
90
|
: Ar extends NonEmptyArray<unknown>
|
|
98
|
-
?
|
|
99
|
-
|
|
100
|
-
: // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
|
|
101
|
-
readonly (Ar[number] | V)[];
|
|
91
|
+
? NonEmptyArray<Ar[number] | V>
|
|
92
|
+
: readonly (Ar[number] | V)[];
|
|
102
93
|
|
|
103
94
|
// curried version
|
|
104
95
|
export function toUpdated<E, const V = E>(
|
|
@@ -162,10 +153,8 @@ export function toInserted<
|
|
|
162
153
|
index: ArgArrayIndexWithNegative<Ar>,
|
|
163
154
|
newValue: V,
|
|
164
155
|
): IsFixedLengthList<Ar> extends true
|
|
165
|
-
?
|
|
166
|
-
|
|
167
|
-
: // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
|
|
168
|
-
NonEmptyArray<Ar[number] | V>;
|
|
156
|
+
? ArrayOfLength<CastToNumber<Increment<Ar['length']>>, Ar[number] | V>
|
|
157
|
+
: NonEmptyArray<Ar[number] | V>;
|
|
169
158
|
|
|
170
159
|
// curried version
|
|
171
160
|
export function toInserted<const V>(
|
|
@@ -174,10 +163,8 @@ export function toInserted<const V>(
|
|
|
174
163
|
): <const Ar extends readonly unknown[]>(
|
|
175
164
|
array: Ar,
|
|
176
165
|
) => IsFixedLengthList<Ar> extends true
|
|
177
|
-
?
|
|
178
|
-
|
|
179
|
-
: // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
|
|
180
|
-
NonEmptyArray<Ar[number] | V>;
|
|
166
|
+
? ArrayOfLength<CastToNumber<Increment<Ar['length']>>, Ar[number] | V>
|
|
167
|
+
: NonEmptyArray<Ar[number] | V>;
|
|
181
168
|
|
|
182
169
|
export function toInserted<E, const V = E>(
|
|
183
170
|
...args:
|
|
@@ -429,13 +416,10 @@ export function toRangeFilled<const Ar extends readonly unknown[], const V>(
|
|
|
429
416
|
end: ArgArrayIndexWithNegative<Ar>,
|
|
430
417
|
],
|
|
431
418
|
): IsFixedLengthList<Ar> extends true
|
|
432
|
-
?
|
|
433
|
-
ArrayOfLength<Ar['length'], V | Ar[number]>
|
|
419
|
+
? ArrayOfLength<Ar['length'], V | Ar[number]>
|
|
434
420
|
: Ar extends NonEmptyArray<unknown>
|
|
435
|
-
?
|
|
436
|
-
|
|
437
|
-
: // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
|
|
438
|
-
readonly (V | Ar[number])[];
|
|
421
|
+
? NonEmptyArray<V | Ar[number]>
|
|
422
|
+
: readonly (V | Ar[number])[];
|
|
439
423
|
|
|
440
424
|
// curried version
|
|
441
425
|
export function toRangeFilled<const V>(
|
|
@@ -447,13 +431,10 @@ export function toRangeFilled<const V>(
|
|
|
447
431
|
): <const Ar extends readonly unknown[]>(
|
|
448
432
|
array: Ar,
|
|
449
433
|
) => IsFixedLengthList<Ar> extends true
|
|
450
|
-
?
|
|
451
|
-
ArrayOfLength<Ar['length'], V | Ar[number]>
|
|
434
|
+
? ArrayOfLength<Ar['length'], V | Ar[number]>
|
|
452
435
|
: Ar extends NonEmptyArray<unknown>
|
|
453
|
-
?
|
|
454
|
-
|
|
455
|
-
: // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
|
|
456
|
-
readonly (V | Ar[number])[];
|
|
436
|
+
? NonEmptyArray<V | Ar[number]>
|
|
437
|
+
: readonly (V | Ar[number])[];
|
|
457
438
|
|
|
458
439
|
export function toRangeFilled<E, const V>(
|
|
459
440
|
...args:
|
package/src/globals.d.mts
CHANGED
|
@@ -13,8 +13,7 @@ type ArgArrayIndex<Ar extends readonly unknown[]> =
|
|
|
13
13
|
|
|
14
14
|
type ArgArrayIndexWithNegative<Ar extends readonly unknown[]> =
|
|
15
15
|
IsFixedLengthList<Ar> extends true
|
|
16
|
-
?
|
|
17
|
-
IndexOfTuple<[...Ar, 0]> | NegativeIndexOfTuple<Ar>
|
|
16
|
+
? IndexOfTuple<[...Ar, 0]> | NegativeIndexOfTuple<Ar>
|
|
18
17
|
: SizeType.ArgArrWithNegative;
|
|
19
18
|
|
|
20
19
|
// https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/length
|
package/src/guard/has-key.mts
CHANGED
|
@@ -58,14 +58,11 @@ export type HasKeyReturnType<
|
|
|
58
58
|
> = R extends R // union distribution
|
|
59
59
|
? K extends keyof R
|
|
60
60
|
? string extends keyof R
|
|
61
|
-
?
|
|
62
|
-
ReadonlyRecord<K, R[keyof R]> & R
|
|
61
|
+
? ReadonlyRecord<K, R[keyof R]> & R
|
|
63
62
|
: number extends keyof R
|
|
64
|
-
?
|
|
65
|
-
ReadonlyRecord<K, R[keyof R]> & R
|
|
63
|
+
? ReadonlyRecord<K, R[keyof R]> & R
|
|
66
64
|
: symbol extends keyof R
|
|
67
|
-
?
|
|
68
|
-
ReadonlyRecord<K, R[keyof R]> & R
|
|
65
|
+
? ReadonlyRecord<K, R[keyof R]> & R
|
|
69
66
|
: R
|
|
70
67
|
: never // omit union member that does not have key K
|
|
71
68
|
: never; // dummy case for union distribution
|
package/src/object/object.mts
CHANGED
|
@@ -370,7 +370,6 @@ export namespace Obj {
|
|
|
370
370
|
: TypeEq<Entries['length'], 0> extends true
|
|
371
371
|
? K
|
|
372
372
|
: ValuesOfEntriesImpl<
|
|
373
|
-
// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
|
|
374
373
|
K | Entries[0][1],
|
|
375
374
|
List.Tail<Entries>,
|
|
376
375
|
Decrement<RemainingNumRecursions>
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { isError } from '@sindresorhus/is';
|
|
2
|
-
import { isNonNullish } from '../guard/index.mjs';
|
|
1
|
+
import { isDate, isError, isMap, isRegExp, isSet } from '@sindresorhus/is';
|
|
3
2
|
|
|
4
3
|
/**
|
|
5
4
|
* Converts an unknown value to its string representation in a type-safe manner.
|
|
@@ -17,6 +16,11 @@ import { isNonNullish } from '../guard/index.mjs';
|
|
|
17
16
|
* - Functions: converted to their string representation
|
|
18
17
|
* - null: returns "null" (not "null" from JSON)
|
|
19
18
|
* - undefined: returns "undefined"
|
|
19
|
+
* - Date: converted to ISO string
|
|
20
|
+
* - RegExp: converted to regex literal string
|
|
21
|
+
* - Map: converted to Map representation with entries
|
|
22
|
+
* - Set: converted to Set representation with values
|
|
23
|
+
* - Error: returns error message
|
|
20
24
|
* - Objects: JSON stringified (with optional pretty printing)
|
|
21
25
|
*
|
|
22
26
|
* @param value - The unknown value to convert to string
|
|
@@ -47,25 +51,61 @@ export const unknownToString = (
|
|
|
47
51
|
case 'function':
|
|
48
52
|
return value.toString();
|
|
49
53
|
|
|
50
|
-
case '
|
|
51
|
-
|
|
54
|
+
case 'undefined':
|
|
55
|
+
return 'undefined';
|
|
56
|
+
|
|
57
|
+
case 'object': {
|
|
58
|
+
if (value === null) {
|
|
52
59
|
return 'null';
|
|
53
60
|
}
|
|
54
61
|
|
|
55
62
|
try {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
63
|
+
// Special handling for Date
|
|
64
|
+
if (isDate(value)) {
|
|
65
|
+
return value.toISOString();
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// Special handling for RegExp
|
|
69
|
+
if (isRegExp(value)) {
|
|
70
|
+
return value.toString();
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
if (isError(value)) {
|
|
74
|
+
return value.message;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
const prettyPrintObject = options?.prettyPrintObject === true;
|
|
78
|
+
|
|
79
|
+
// Special handling for Map
|
|
80
|
+
if (isMap(value)) {
|
|
81
|
+
const entries = Array.from(value.entries());
|
|
82
|
+
|
|
83
|
+
const entriesStr = prettyPrintObject
|
|
84
|
+
? JSON.stringify(entries, undefined, 2)
|
|
85
|
+
: JSON.stringify(entries);
|
|
60
86
|
|
|
61
|
-
|
|
87
|
+
return `Map(${entriesStr})`;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Special handling for Set
|
|
91
|
+
if (isSet(value)) {
|
|
92
|
+
const values = Array.from(value.values());
|
|
93
|
+
|
|
94
|
+
const valuesStr = prettyPrintObject
|
|
95
|
+
? JSON.stringify(values, undefined, 2)
|
|
96
|
+
: JSON.stringify(values);
|
|
97
|
+
|
|
98
|
+
return `Set(${valuesStr})`;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
return prettyPrintObject
|
|
102
|
+
? JSON.stringify(value, undefined, 2)
|
|
103
|
+
: JSON.stringify(value);
|
|
62
104
|
} catch (error) {
|
|
63
105
|
return isError(error)
|
|
64
106
|
? error.message
|
|
65
107
|
: '[Circular or Non-serializable]';
|
|
66
108
|
}
|
|
67
|
-
|
|
68
|
-
case 'undefined':
|
|
69
|
-
return 'undefined';
|
|
109
|
+
}
|
|
70
110
|
}
|
|
71
111
|
};
|
|
@@ -1,86 +1,274 @@
|
|
|
1
|
+
import dedent from 'dedent';
|
|
1
2
|
import { unknownToString } from './unknown-to-string.mjs';
|
|
2
3
|
|
|
3
4
|
describe(unknownToString, () => {
|
|
4
5
|
test('string', () => {
|
|
5
|
-
const
|
|
6
|
+
const value = 'aaaaa';
|
|
6
7
|
|
|
7
|
-
expect(
|
|
8
|
+
expect(unknownToString(value)).toBe('aaaaa');
|
|
8
9
|
|
|
9
|
-
expect(JSON.stringify(
|
|
10
|
+
expect(JSON.stringify(value)).toBe('"aaaaa"');
|
|
10
11
|
});
|
|
11
12
|
|
|
12
13
|
test('number', () => {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
expect(result).toBe('1');
|
|
14
|
+
expect(unknownToString(1)).toBe('1');
|
|
16
15
|
|
|
17
16
|
expect(JSON.stringify(1)).toBe('1');
|
|
18
17
|
});
|
|
19
18
|
|
|
20
|
-
test('
|
|
21
|
-
const
|
|
19
|
+
test('BigInt value', () => {
|
|
20
|
+
const value = 123n;
|
|
22
21
|
|
|
23
|
-
expect(
|
|
22
|
+
expect(unknownToString(value)).toBe('123n');
|
|
24
23
|
|
|
25
|
-
expect(JSON.stringify(
|
|
24
|
+
expect(() => JSON.stringify(value)).toThrowError(
|
|
25
|
+
'Do not know how to serialize a BigInt',
|
|
26
|
+
);
|
|
26
27
|
});
|
|
27
28
|
|
|
28
|
-
test('
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
expect(result).toBe('Symbol(sym)');
|
|
29
|
+
test('boolean', () => {
|
|
30
|
+
expect(unknownToString(true)).toBe('true');
|
|
32
31
|
|
|
33
|
-
expect(JSON.stringify(
|
|
32
|
+
expect(JSON.stringify(true)).toBe('true');
|
|
34
33
|
});
|
|
35
34
|
|
|
36
|
-
test('
|
|
37
|
-
|
|
35
|
+
test('undefined', () => {
|
|
36
|
+
expect(unknownToString(undefined)).toBe('undefined');
|
|
38
37
|
|
|
39
|
-
expect(
|
|
38
|
+
expect(JSON.stringify(undefined)).toBeUndefined();
|
|
39
|
+
});
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
test('null', () => {
|
|
42
|
+
expect(unknownToString(null)).toBe('null');
|
|
43
|
+
|
|
44
|
+
expect(JSON.stringify(null)).toBe('null');
|
|
42
45
|
});
|
|
43
46
|
|
|
44
|
-
test('
|
|
45
|
-
const
|
|
47
|
+
test('symbol', () => {
|
|
48
|
+
const value = Symbol('sym');
|
|
46
49
|
|
|
47
|
-
expect(
|
|
50
|
+
expect(unknownToString(value)).toBe('Symbol(sym)');
|
|
48
51
|
|
|
49
|
-
expect(JSON.stringify(
|
|
52
|
+
expect(JSON.stringify(value)).toBeUndefined();
|
|
50
53
|
});
|
|
51
54
|
|
|
52
|
-
|
|
53
|
-
|
|
55
|
+
describe('function', () => {
|
|
56
|
+
test('() => 0', () => {
|
|
57
|
+
const fn = (): number => 0;
|
|
54
58
|
|
|
55
|
-
|
|
59
|
+
expect(unknownToString(fn)).toBe('() => 0');
|
|
56
60
|
|
|
57
|
-
|
|
58
|
-
|
|
61
|
+
expect(JSON.stringify(fn)).toBeUndefined();
|
|
62
|
+
});
|
|
59
63
|
|
|
60
|
-
|
|
61
|
-
|
|
64
|
+
test('(args) => ({ ret: args })', () => {
|
|
65
|
+
const fn = (args: unknown): unknown => ({ ret: args });
|
|
62
66
|
|
|
63
|
-
|
|
67
|
+
expect(unknownToString(fn)).toBe('(args) => ({ ret: args })');
|
|
64
68
|
|
|
65
|
-
|
|
69
|
+
expect(JSON.stringify(fn)).toBeUndefined();
|
|
70
|
+
});
|
|
66
71
|
});
|
|
67
72
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
{ a: { b: 1 } }
|
|
71
|
-
|
|
72
|
-
|
|
73
|
+
describe('object', () => {
|
|
74
|
+
test('object', () => {
|
|
75
|
+
const obj = { a: { b: 1 } };
|
|
76
|
+
|
|
77
|
+
expect(unknownToString(obj)).toBe('{"a":{"b":1}}');
|
|
73
78
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
`
|
|
82
|
-
|
|
83
|
-
|
|
79
|
+
expect(JSON.stringify(obj)).toBe('{"a":{"b":1}}');
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
test('object(prettyPrint=true)', () => {
|
|
83
|
+
const obj = { a: { b: 1 } };
|
|
84
|
+
|
|
85
|
+
expect(unknownToString(obj, { prettyPrintObject: true })).toBe(
|
|
86
|
+
dedent`
|
|
87
|
+
{
|
|
88
|
+
"a": {
|
|
89
|
+
"b": 1
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
`,
|
|
93
|
+
);
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
describe('array', () => {
|
|
97
|
+
test('array of primitives', () => {
|
|
98
|
+
const arr = [1, 2, 3, 'test', true];
|
|
99
|
+
|
|
100
|
+
expect(unknownToString(arr)).toBe('[1,2,3,"test",true]');
|
|
101
|
+
|
|
102
|
+
expect(JSON.stringify(arr)).toBe('[1,2,3,"test",true]');
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
test('array of objects', () => {
|
|
106
|
+
const arr = [{ a: 1 }, { b: 2 }];
|
|
107
|
+
|
|
108
|
+
expect(unknownToString(arr)).toBe('[{"a":1},{"b":2}]');
|
|
109
|
+
|
|
110
|
+
expect(JSON.stringify(arr)).toBe('[{"a":1},{"b":2}]');
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
test('empty array', () => {
|
|
114
|
+
expect(unknownToString([])).toBe('[]');
|
|
115
|
+
|
|
116
|
+
expect(JSON.stringify([])).toBe('[]');
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
test('nested array', () => {
|
|
120
|
+
const nestedArray = [
|
|
121
|
+
[1, 2],
|
|
122
|
+
[3, 4],
|
|
123
|
+
];
|
|
124
|
+
|
|
125
|
+
expect(unknownToString(nestedArray)).toBe('[[1,2],[3,4]]');
|
|
126
|
+
|
|
127
|
+
expect(JSON.stringify(nestedArray)).toBe('[[1,2],[3,4]]');
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
test('array with prettyPrint', () => {
|
|
131
|
+
const arr = [1, { a: 2 }, 3];
|
|
132
|
+
|
|
133
|
+
expect(
|
|
134
|
+
unknownToString(arr, {
|
|
135
|
+
prettyPrintObject: true,
|
|
136
|
+
}),
|
|
137
|
+
).toBe(
|
|
138
|
+
dedent`
|
|
139
|
+
[
|
|
140
|
+
1,
|
|
141
|
+
{
|
|
142
|
+
"a": 2
|
|
143
|
+
},
|
|
144
|
+
3
|
|
145
|
+
]
|
|
146
|
+
`,
|
|
147
|
+
);
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
describe('special objects', () => {
|
|
152
|
+
test('Date object returns ISO string', () => {
|
|
153
|
+
const date = new Date('2024-01-15T10:30:00.000Z');
|
|
154
|
+
|
|
155
|
+
expect(unknownToString(date)).toBe('2024-01-15T10:30:00.000Z');
|
|
156
|
+
});
|
|
157
|
+
|
|
158
|
+
test('RegExp returns regex literal', () => {
|
|
159
|
+
const regex = /test/giu;
|
|
160
|
+
|
|
161
|
+
expect(unknownToString(regex)).toBe('/test/giu');
|
|
162
|
+
});
|
|
163
|
+
|
|
164
|
+
test('RegExp without flags', () => {
|
|
165
|
+
// eslint-disable-next-line require-unicode-regexp
|
|
166
|
+
const regex = /hello/;
|
|
167
|
+
|
|
168
|
+
expect(unknownToString(regex)).toBe('/hello/');
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
test('Map with entries', () => {
|
|
172
|
+
const map = new Map<number | string, boolean | number | string>([
|
|
173
|
+
['key1', 'value1'],
|
|
174
|
+
['key2', 42],
|
|
175
|
+
[3, true],
|
|
176
|
+
]);
|
|
177
|
+
|
|
178
|
+
expect(unknownToString(map)).toBe(
|
|
179
|
+
'Map([["key1","value1"],["key2",42],[3,true]])',
|
|
180
|
+
);
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
test('empty Map', () => {
|
|
184
|
+
const map = new Map();
|
|
185
|
+
|
|
186
|
+
expect(unknownToString(map)).toBe('Map([])');
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
test('Map with prettyPrint', () => {
|
|
190
|
+
const map = new Map([
|
|
191
|
+
['a', 1],
|
|
192
|
+
['b', 2],
|
|
193
|
+
]);
|
|
194
|
+
|
|
195
|
+
expect(unknownToString(map, { prettyPrintObject: true })).toBe(
|
|
196
|
+
dedent`
|
|
197
|
+
Map([
|
|
198
|
+
[
|
|
199
|
+
"a",
|
|
200
|
+
1
|
|
201
|
+
],
|
|
202
|
+
[
|
|
203
|
+
"b",
|
|
204
|
+
2
|
|
205
|
+
]
|
|
206
|
+
])
|
|
207
|
+
`,
|
|
208
|
+
);
|
|
209
|
+
});
|
|
210
|
+
|
|
211
|
+
test('Set with values', () => {
|
|
212
|
+
const set = new Set([1, 2, 3, 'test', true]);
|
|
213
|
+
|
|
214
|
+
expect(unknownToString(set)).toBe('Set([1,2,3,"test",true])');
|
|
215
|
+
});
|
|
216
|
+
|
|
217
|
+
test('empty Set', () => {
|
|
218
|
+
const set = new Set();
|
|
219
|
+
|
|
220
|
+
expect(unknownToString(set)).toBe('Set([])');
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
test('Set with prettyPrint', () => {
|
|
224
|
+
const set = new Set([1, { a: 2 }, 3]);
|
|
225
|
+
|
|
226
|
+
expect(unknownToString(set, { prettyPrintObject: true })).toBe(
|
|
227
|
+
dedent`
|
|
228
|
+
Set([
|
|
229
|
+
1,
|
|
230
|
+
{
|
|
231
|
+
"a": 2
|
|
232
|
+
},
|
|
233
|
+
3
|
|
234
|
+
])
|
|
235
|
+
`,
|
|
236
|
+
);
|
|
237
|
+
});
|
|
238
|
+
|
|
239
|
+
test('nested Map and Set', () => {
|
|
240
|
+
const map = new Map([['set', new Set([1, 2])]]);
|
|
241
|
+
|
|
242
|
+
const result = unknownToString(map);
|
|
243
|
+
|
|
244
|
+
// Set is converted to object notation in JSON.stringify
|
|
245
|
+
expect(result).toMatch(/Map\(\[\["set",/u);
|
|
246
|
+
});
|
|
247
|
+
|
|
248
|
+
test('Error object returns message', () => {
|
|
249
|
+
const err = new Error('Something went wrong');
|
|
250
|
+
|
|
251
|
+
expect(unknownToString(err)).toBe('Something went wrong');
|
|
252
|
+
|
|
253
|
+
expect(JSON.stringify(err)).toBe('{}');
|
|
254
|
+
});
|
|
255
|
+
|
|
256
|
+
test('Error object with empty message', () => {
|
|
257
|
+
// eslint-disable-next-line unicorn/error-message
|
|
258
|
+
const err = new Error('');
|
|
259
|
+
|
|
260
|
+
expect(unknownToString(err)).toBe('');
|
|
261
|
+
|
|
262
|
+
expect(JSON.stringify(err)).toBe('{}');
|
|
263
|
+
});
|
|
264
|
+
|
|
265
|
+
test('TypeError object with empty message', () => {
|
|
266
|
+
// eslint-disable-next-line unicorn/error-message
|
|
267
|
+
const err = new TypeError('');
|
|
268
|
+
|
|
269
|
+
expect(unknownToString(err)).toBe('');
|
|
270
|
+
});
|
|
271
|
+
});
|
|
84
272
|
});
|
|
85
273
|
|
|
86
274
|
test('circular reference returns error message', () => {
|
|
@@ -88,18 +276,10 @@ describe(unknownToString, () => {
|
|
|
88
276
|
|
|
89
277
|
mut_circular.self = mut_circular;
|
|
90
278
|
|
|
91
|
-
const result = unknownToString(mut_circular);
|
|
92
|
-
|
|
93
279
|
// Should return an error message string instead of throwing
|
|
94
|
-
expectTypeOf(
|
|
280
|
+
expectTypeOf(unknownToString(mut_circular)).toBeString();
|
|
95
281
|
|
|
96
|
-
expect(
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
test('BigInt value', () => {
|
|
100
|
-
const result = unknownToString(123n);
|
|
101
|
-
|
|
102
|
-
expect(result).toBe('123n');
|
|
282
|
+
expect(unknownToString(mut_circular)).toMatch(/circular|serialize/iu);
|
|
103
283
|
});
|
|
104
284
|
|
|
105
285
|
test('non-Error thrown during serialization returns fallback text', () => {
|
|
@@ -110,8 +290,6 @@ describe(unknownToString, () => {
|
|
|
110
290
|
},
|
|
111
291
|
};
|
|
112
292
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
expect(result).toBe('[Circular or Non-serializable]');
|
|
293
|
+
expect(unknownToString(value)).toBe('[Circular or Non-serializable]');
|
|
116
294
|
});
|
|
117
295
|
});
|