ts-data-forge 6.3.0 → 6.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.
Files changed (94) hide show
  1. package/README.md +4 -4
  2. package/dist/array/impl/array-utils-creation.d.mts.map +1 -1
  3. package/dist/array/impl/array-utils-creation.mjs.map +1 -1
  4. package/dist/array/impl/array-utils-element-access.d.mts +2 -2
  5. package/dist/array/impl/array-utils-element-access.mjs +2 -2
  6. package/dist/array/impl/array-utils-modification.d.mts +2 -2
  7. package/dist/array/impl/array-utils-modification.d.mts.map +1 -1
  8. package/dist/array/impl/array-utils-modification.mjs +1 -2
  9. package/dist/array/impl/array-utils-modification.mjs.map +1 -1
  10. package/dist/array/impl/array-utils-reducing-value.mjs +1 -1
  11. package/dist/array/impl/array-utils-search.d.mts +3 -1
  12. package/dist/array/impl/array-utils-search.d.mts.map +1 -1
  13. package/dist/array/impl/array-utils-search.mjs.map +1 -1
  14. package/dist/array/impl/array-utils-set-op.d.mts.map +1 -1
  15. package/dist/array/impl/array-utils-set-op.mjs +1 -0
  16. package/dist/array/impl/array-utils-set-op.mjs.map +1 -1
  17. package/dist/array/impl/array-utils-size.d.mts +1 -1
  18. package/dist/array/impl/array-utils-size.mjs +1 -1
  19. package/dist/array/impl/array-utils-validation.d.mts +2 -2
  20. package/dist/array/impl/array-utils-validation.mjs +2 -2
  21. package/dist/collections/imap.d.mts +3 -3
  22. package/dist/collections/iset-mapped.d.mts +3 -3
  23. package/dist/collections/iset.d.mts +3 -3
  24. package/dist/collections/queue.mjs +21 -21
  25. package/dist/collections/queue.mjs.map +1 -1
  26. package/dist/collections/stack.mjs +12 -12
  27. package/dist/collections/stack.mjs.map +1 -1
  28. package/dist/functional/match.d.mts +1 -1
  29. package/dist/functional/match.d.mts.map +1 -1
  30. package/dist/globals.d.mts +1 -1
  31. package/dist/guard/has-key.d.mts +1 -1
  32. package/dist/guard/has-key.mjs +1 -1
  33. package/dist/guard/is-non-null-object.d.mts +1 -1
  34. package/dist/guard/is-non-null-object.mjs +1 -1
  35. package/dist/guard/is-record.d.mts +1 -1
  36. package/dist/guard/is-record.mjs +1 -1
  37. package/dist/guard/is-type.d.mts +23 -15
  38. package/dist/guard/is-type.d.mts.map +1 -1
  39. package/dist/guard/is-type.mjs +23 -15
  40. package/dist/guard/is-type.mjs.map +1 -1
  41. package/dist/number/num.d.mts +4 -4
  42. package/dist/number/num.d.mts.map +1 -1
  43. package/dist/number/num.mjs.map +1 -1
  44. package/dist/object/object.d.mts +1 -1
  45. package/dist/object/object.mjs +1 -1
  46. package/dist/others/memoize-function.d.mts +3 -2
  47. package/dist/others/memoize-function.d.mts.map +1 -1
  48. package/dist/others/memoize-function.mjs +10 -39
  49. package/dist/others/memoize-function.mjs.map +1 -1
  50. package/package.json +14 -11
  51. package/src/array/impl/array-utils-creation.mts +1 -3
  52. package/src/array/impl/array-utils-creation.test.mts +13 -5
  53. package/src/array/impl/array-utils-element-access.mts +2 -2
  54. package/src/array/impl/array-utils-iterators.test.mts +8 -3
  55. package/src/array/impl/array-utils-modification.mts +5 -6
  56. package/src/array/impl/array-utils-modification.test.mts +3 -3
  57. package/src/array/impl/array-utils-overload-type-error.test.mts +1 -1
  58. package/src/array/impl/array-utils-reducing-value.test.mts +5 -5
  59. package/src/array/impl/array-utils-search.mts +9 -7
  60. package/src/array/impl/array-utils-search.test.mts +2 -2
  61. package/src/array/impl/array-utils-set-op.mts +2 -1
  62. package/src/array/impl/array-utils-size.mts +1 -1
  63. package/src/array/impl/array-utils-transformation.test.mts +23 -22
  64. package/src/array/impl/array-utils-validation.mts +2 -2
  65. package/src/array/impl/array-utils-validation.test.mts +36 -29
  66. package/src/array/impl/array.test.mts +3 -0
  67. package/src/collections/imap-mapped.test.mts +5 -2
  68. package/src/collections/imap.mts +3 -3
  69. package/src/collections/iset-mapped.mts +3 -3
  70. package/src/collections/iset-mapped.test.mts +1 -1
  71. package/src/collections/iset.mts +3 -3
  72. package/src/collections/queue.mts +21 -21
  73. package/src/collections/queue.test.mts +1 -1
  74. package/src/collections/stack.mts +12 -12
  75. package/src/functional/match.mts +21 -12
  76. package/src/globals.d.mts +1 -1
  77. package/src/guard/has-key.mts +1 -1
  78. package/src/guard/has-key.test.mts +16 -35
  79. package/src/guard/is-error.test.mts +1 -1
  80. package/src/guard/is-non-empty-string.test.mts +1 -1
  81. package/src/guard/is-non-null-object.mts +1 -1
  82. package/src/guard/is-non-null-object.test.mts +1 -1
  83. package/src/guard/is-primitive.test.mts +1 -1
  84. package/src/guard/is-record.mts +1 -1
  85. package/src/guard/is-type.mts +23 -15
  86. package/src/guard/is-type.test.mts +6 -6
  87. package/src/json/json.test.mts +2 -0
  88. package/src/number/num.mts +2 -6
  89. package/src/object/object.mts +1 -1
  90. package/src/object/object.test.mts +7 -5
  91. package/src/others/cast-mutable.test.mts +7 -4
  92. package/src/others/map-nullable.test.mts +3 -3
  93. package/src/others/memoize-function.mts +35 -17
  94. package/src/others/memoize-function.test.mts +25 -0
@@ -19,7 +19,7 @@
19
19
  * @example
20
20
  *
21
21
  * ```ts
22
- * const mixed: unknown[] = [{ id: 1 }, null, 'Ada'] as const;
22
+ * const mixed: readonly unknown[] = [{ id: 1 }, null, 'Ada'] as const;
23
23
  *
24
24
  * const objects = mixed.filter(isNonNullObject);
25
25
  *
@@ -23,7 +23,7 @@
23
23
  * @example
24
24
  *
25
25
  * ```ts
26
- * const entries: unknown[] = [{ id: 1 }, 'str', 0, null];
26
+ * const entries: readonly unknown[] = [{ id: 1 }, 'str', 0, null];
27
27
  *
28
28
  * const records = entries.filter(isRecord);
29
29
  *
@@ -25,7 +25,7 @@ import { isNonNullObject } from './is-non-null-object.mjs';
25
25
  * @example
26
26
  *
27
27
  * ```ts
28
- * const entries: unknown[] = [{ id: 1 }, 'str', 0, null];
28
+ * const entries: readonly unknown[] = [{ id: 1 }, 'str', 0, null];
29
29
  *
30
30
  * const records = entries.filter(isRecord);
31
31
  *
@@ -9,7 +9,7 @@
9
9
  * @example
10
10
  *
11
11
  * ```ts
12
- * const values: (number | undefined)[] = [1, undefined, 2];
12
+ * const values: readonly (number | undefined)[] = [1, undefined, 2];
13
13
  *
14
14
  * const undefinedValues = values.filter(isUndefined);
15
15
  *
@@ -33,7 +33,7 @@ export declare const isUndefined: (u: unknown) => u is undefined;
33
33
  * @example
34
34
  *
35
35
  * ```ts
36
- * const values: (number | undefined)[] = [1, undefined, 2];
36
+ * const values: readonly (number | undefined)[] = [1, undefined, 2];
37
37
  *
38
38
  * const definedValues = values.filter(isNotUndefined);
39
39
  *
@@ -57,7 +57,7 @@ export declare const isNotUndefined: <T>(u: T) => u is RelaxedExclude<T, undefin
57
57
  * @example
58
58
  *
59
59
  * ```ts
60
- * const flags: unknown[] = [true, 'no', false];
60
+ * const flags: readonly unknown[] = [true, 'no', false];
61
61
  *
62
62
  * const booleans = flags.filter(isBoolean);
63
63
  *
@@ -80,7 +80,7 @@ export declare const isBoolean: (u: unknown) => u is boolean;
80
80
  * @example
81
81
  *
82
82
  * ```ts
83
- * const flags: unknown[] = [true, 'no', false];
83
+ * const flags: readonly unknown[] = [true, 'no', false];
84
84
  *
85
85
  * const nonBooleans = flags.filter(isNotBoolean);
86
86
  *
@@ -105,7 +105,7 @@ export declare const isNotBoolean: <T>(u: T) => u is RelaxedExclude<T, boolean>;
105
105
  * @example
106
106
  *
107
107
  * ```ts
108
- * const mixed: unknown[] = [1, '2', 3];
108
+ * const mixed: readonly unknown[] = [1, '2', 3];
109
109
  *
110
110
  * const numbers = mixed.filter(isNumber);
111
111
  *
@@ -128,7 +128,7 @@ export declare const isNumber: (u: unknown) => u is number;
128
128
  * @example
129
129
  *
130
130
  * ```ts
131
- * const mixed: unknown[] = [1, '2', 3];
131
+ * const mixed: readonly unknown[] = [1, '2', 3];
132
132
  *
133
133
  * const nonNumbers = mixed.filter(isNotNumber);
134
134
  *
@@ -152,7 +152,7 @@ export declare const isNotNumber: <T>(u: T) => u is RelaxedExclude<T, number>;
152
152
  * @example
153
153
  *
154
154
  * ```ts
155
- * const values: unknown[] = [1n, 2, 3n];
155
+ * const values: readonly unknown[] = [1n, 2, 3n];
156
156
  *
157
157
  * const bigints = values.filter(isBigint);
158
158
  *
@@ -175,7 +175,7 @@ export declare const isBigint: (u: unknown) => u is bigint;
175
175
  * @example
176
176
  *
177
177
  * ```ts
178
- * const values: unknown[] = [1n, 2, 3n];
178
+ * const values: readonly unknown[] = [1n, 2, 3n];
179
179
  *
180
180
  * const nonBigints = values.filter(isNotBigint);
181
181
  *
@@ -200,7 +200,7 @@ export declare const isNotBigint: <T>(u: T) => u is RelaxedExclude<T, bigint>;
200
200
  * @example
201
201
  *
202
202
  * ```ts
203
- * const values: unknown[] = ['Ada', 42, 'Lovelace'];
203
+ * const values: readonly unknown[] = ['Ada', 42, 'Lovelace'];
204
204
  *
205
205
  * const strings = values.filter(isString);
206
206
  *
@@ -223,7 +223,7 @@ export declare const isString: (u: unknown) => u is string;
223
223
  * @example
224
224
  *
225
225
  * ```ts
226
- * const values: unknown[] = ['Ada', 42, 'Lovelace'];
226
+ * const values: readonly unknown[] = ['Ada', 42, 'Lovelace'];
227
227
  *
228
228
  * const nonStrings = values.filter(isNotString);
229
229
  *
@@ -251,7 +251,7 @@ export declare const isNotString: <T>(u: T) => u is RelaxedExclude<T, string>;
251
251
  *
252
252
  * const shared = Symbol.for('shared');
253
253
  *
254
- * const tokens: unknown[] = [id, 'shared', shared];
254
+ * const tokens: readonly unknown[] = [id, 'shared', shared];
255
255
  *
256
256
  * const symbols = tokens.filter(isSymbol);
257
257
  *
@@ -276,7 +276,7 @@ export declare const isSymbol: (u: unknown) => u is symbol;
276
276
  * ```ts
277
277
  * const id = Symbol('id');
278
278
  *
279
- * const tokens: unknown[] = [id, 'shared'];
279
+ * const tokens: readonly unknown[] = [id, 'shared'];
280
280
  *
281
281
  * const nonSymbols = tokens.filter(isNotSymbol);
282
282
  *
@@ -324,7 +324,7 @@ export declare const isNull: (u: unknown) => u is null;
324
324
  * @example
325
325
  *
326
326
  * ```ts
327
- * const values: (number | null)[] = [null, 5];
327
+ * const values: readonly (number | null)[] = [null, 5];
328
328
  *
329
329
  * const nonNullValues = values.filter(isNotNull);
330
330
  *
@@ -352,7 +352,11 @@ export declare const isNotNull: <T>(u: T | null) => u is T;
352
352
  * @example
353
353
  *
354
354
  * ```ts
355
- * const values: (string | null | undefined)[] = ['Ada', null, undefined];
355
+ * const values: readonly (string | null | undefined)[] = [
356
+ * 'Ada',
357
+ * null,
358
+ * undefined,
359
+ * ];
356
360
  *
357
361
  * const nullishValues = values.filter(isNullish);
358
362
  *
@@ -380,7 +384,11 @@ export declare const isNullish: (u: unknown) => u is null | undefined;
380
384
  * @example
381
385
  *
382
386
  * ```ts
383
- * const values: (string | null | undefined)[] = ['Ada', null, undefined];
387
+ * const values: readonly (string | null | undefined)[] = [
388
+ * 'Ada',
389
+ * null,
390
+ * undefined,
391
+ * ];
384
392
  *
385
393
  * const definedValues = values.filter(isNonNullish);
386
394
  *
@@ -1 +1 @@
1
- {"version":3,"file":"is-type.d.mts","sourceRoot":"","sources":["../../src/guard/is-type.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,WAAW,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,SAA4B,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,EAAG,GAAG,CAAC,KAAG,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,SAAS,CACzD,CAAC;AAElB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,SAAS,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,OAAiC,CAAC;AAE9E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,EAAG,GAAG,CAAC,KAAG,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,OAAO,CAC9C,CAAC;AAEzB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,QAAQ,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,MAA+B,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,EAAG,GAAG,CAAC,KAAG,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,MAAM,CAC7C,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,QAAQ,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,MAA+B,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,EAAG,GAAG,CAAC,KAAG,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,MAAM,CAC7C,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,QAAQ,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,MAA+B,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,EAAG,GAAG,CAAC,KAAG,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,MAAM,CAC7C,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,QAAQ,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,MAA+B,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,EAAG,GAAG,CAAC,KAAG,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,MAAM,CAC7C,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,MAAM,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,IAAkB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,EAAG,GAAG,CAAC,GAAG,IAAI,KAAG,CAAC,IAAI,CAAe,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,SAAS,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,IAAI,GAAG,SAAsB,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,EAAG,GAAG,CAAC,KAAG,CAAC,IAAI,WAAW,CAAC,CAAC,CAAc,CAAC"}
1
+ {"version":3,"file":"is-type.d.mts","sourceRoot":"","sources":["../../src/guard/is-type.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,WAAW,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,SAA4B,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,EAAG,GAAG,CAAC,KAAG,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,SAAS,CACzD,CAAC;AAElB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,SAAS,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,OAAiC,CAAC;AAE9E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,EAAG,GAAG,CAAC,KAAG,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,OAAO,CAC9C,CAAC;AAEzB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,QAAQ,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,MAA+B,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,EAAG,GAAG,CAAC,KAAG,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,MAAM,CAC7C,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,QAAQ,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,MAA+B,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,EAAG,GAAG,CAAC,KAAG,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,MAAM,CAC7C,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,QAAQ,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,MAA+B,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,EAAG,GAAG,CAAC,KAAG,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,MAAM,CAC7C,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,QAAQ,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,MAA+B,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,EAAG,GAAG,CAAC,KAAG,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,MAAM,CAC7C,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,MAAM,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,IAAkB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,EAAG,GAAG,CAAC,GAAG,IAAI,KAAG,CAAC,IAAI,CAAe,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,SAAS,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,IAAI,GAAG,SAAsB,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,EAAG,GAAG,CAAC,KAAG,CAAC,IAAI,WAAW,CAAC,CAAC,CAAc,CAAC"}
@@ -9,7 +9,7 @@
9
9
  * @example
10
10
  *
11
11
  * ```ts
12
- * const values: (number | undefined)[] = [1, undefined, 2];
12
+ * const values: readonly (number | undefined)[] = [1, undefined, 2];
13
13
  *
14
14
  * const undefinedValues = values.filter(isUndefined);
15
15
  *
@@ -33,7 +33,7 @@ const isUndefined = (u) => u === undefined;
33
33
  * @example
34
34
  *
35
35
  * ```ts
36
- * const values: (number | undefined)[] = [1, undefined, 2];
36
+ * const values: readonly (number | undefined)[] = [1, undefined, 2];
37
37
  *
38
38
  * const definedValues = values.filter(isNotUndefined);
39
39
  *
@@ -57,7 +57,7 @@ const isNotUndefined = (u) => u !== undefined;
57
57
  * @example
58
58
  *
59
59
  * ```ts
60
- * const flags: unknown[] = [true, 'no', false];
60
+ * const flags: readonly unknown[] = [true, 'no', false];
61
61
  *
62
62
  * const booleans = flags.filter(isBoolean);
63
63
  *
@@ -80,7 +80,7 @@ const isBoolean = (u) => typeof u === 'boolean';
80
80
  * @example
81
81
  *
82
82
  * ```ts
83
- * const flags: unknown[] = [true, 'no', false];
83
+ * const flags: readonly unknown[] = [true, 'no', false];
84
84
  *
85
85
  * const nonBooleans = flags.filter(isNotBoolean);
86
86
  *
@@ -105,7 +105,7 @@ const isNotBoolean = (u) => typeof u !== 'boolean';
105
105
  * @example
106
106
  *
107
107
  * ```ts
108
- * const mixed: unknown[] = [1, '2', 3];
108
+ * const mixed: readonly unknown[] = [1, '2', 3];
109
109
  *
110
110
  * const numbers = mixed.filter(isNumber);
111
111
  *
@@ -128,7 +128,7 @@ const isNumber = (u) => typeof u === 'number';
128
128
  * @example
129
129
  *
130
130
  * ```ts
131
- * const mixed: unknown[] = [1, '2', 3];
131
+ * const mixed: readonly unknown[] = [1, '2', 3];
132
132
  *
133
133
  * const nonNumbers = mixed.filter(isNotNumber);
134
134
  *
@@ -152,7 +152,7 @@ const isNotNumber = (u) => typeof u !== 'number';
152
152
  * @example
153
153
  *
154
154
  * ```ts
155
- * const values: unknown[] = [1n, 2, 3n];
155
+ * const values: readonly unknown[] = [1n, 2, 3n];
156
156
  *
157
157
  * const bigints = values.filter(isBigint);
158
158
  *
@@ -175,7 +175,7 @@ const isBigint = (u) => typeof u === 'bigint';
175
175
  * @example
176
176
  *
177
177
  * ```ts
178
- * const values: unknown[] = [1n, 2, 3n];
178
+ * const values: readonly unknown[] = [1n, 2, 3n];
179
179
  *
180
180
  * const nonBigints = values.filter(isNotBigint);
181
181
  *
@@ -200,7 +200,7 @@ const isNotBigint = (u) => typeof u !== 'bigint';
200
200
  * @example
201
201
  *
202
202
  * ```ts
203
- * const values: unknown[] = ['Ada', 42, 'Lovelace'];
203
+ * const values: readonly unknown[] = ['Ada', 42, 'Lovelace'];
204
204
  *
205
205
  * const strings = values.filter(isString);
206
206
  *
@@ -223,7 +223,7 @@ const isString = (u) => typeof u === 'string';
223
223
  * @example
224
224
  *
225
225
  * ```ts
226
- * const values: unknown[] = ['Ada', 42, 'Lovelace'];
226
+ * const values: readonly unknown[] = ['Ada', 42, 'Lovelace'];
227
227
  *
228
228
  * const nonStrings = values.filter(isNotString);
229
229
  *
@@ -251,7 +251,7 @@ const isNotString = (u) => typeof u !== 'string';
251
251
  *
252
252
  * const shared = Symbol.for('shared');
253
253
  *
254
- * const tokens: unknown[] = [id, 'shared', shared];
254
+ * const tokens: readonly unknown[] = [id, 'shared', shared];
255
255
  *
256
256
  * const symbols = tokens.filter(isSymbol);
257
257
  *
@@ -276,7 +276,7 @@ const isSymbol = (u) => typeof u === 'symbol';
276
276
  * ```ts
277
277
  * const id = Symbol('id');
278
278
  *
279
- * const tokens: unknown[] = [id, 'shared'];
279
+ * const tokens: readonly unknown[] = [id, 'shared'];
280
280
  *
281
281
  * const nonSymbols = tokens.filter(isNotSymbol);
282
282
  *
@@ -324,7 +324,7 @@ const isNull = (u) => u === null;
324
324
  * @example
325
325
  *
326
326
  * ```ts
327
- * const values: (number | null)[] = [null, 5];
327
+ * const values: readonly (number | null)[] = [null, 5];
328
328
  *
329
329
  * const nonNullValues = values.filter(isNotNull);
330
330
  *
@@ -352,7 +352,11 @@ const isNotNull = (u) => u !== null;
352
352
  * @example
353
353
  *
354
354
  * ```ts
355
- * const values: (string | null | undefined)[] = ['Ada', null, undefined];
355
+ * const values: readonly (string | null | undefined)[] = [
356
+ * 'Ada',
357
+ * null,
358
+ * undefined,
359
+ * ];
356
360
  *
357
361
  * const nullishValues = values.filter(isNullish);
358
362
  *
@@ -380,7 +384,11 @@ const isNullish = (u) => u == null;
380
384
  * @example
381
385
  *
382
386
  * ```ts
383
- * const values: (string | null | undefined)[] = ['Ada', null, undefined];
387
+ * const values: readonly (string | null | undefined)[] = [
388
+ * 'Ada',
389
+ * null,
390
+ * undefined,
391
+ * ];
384
392
  *
385
393
  * const definedValues = values.filter(isNonNullish);
386
394
  *
@@ -1 +1 @@
1
- {"version":3,"file":"is-type.mjs","sources":["../../src/guard/is-type.mts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;AAqBG;AACI,MAAM,WAAW,GAAG,CAAC,CAAU,KAAqB,CAAC,KAAK;AAEjE;;;;;;;;;;;;;;;;;;;;;;;AAuBG;AACI,MAAM,cAAc,GAAG,CAAK,CAAI,KACrC,CAAC,KAAK;AAER;;;;;;;;;;;;;;;;;;;;;AAqBG;AACI,MAAM,SAAS,GAAG,CAAC,CAAU,KAAmB,OAAO,CAAC,KAAK;AAEpE;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,MAAM,YAAY,GAAG,CAAK,CAAI,KACnC,OAAO,CAAC,KAAK;AAEf;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,MAAM,QAAQ,GAAG,CAAC,CAAU,KAAkB,OAAO,CAAC,KAAK;AAElE;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,MAAM,WAAW,GAAG,CAAK,CAAI,KAClC,OAAO,CAAC,KAAK;AAEf;;;;;;;;;;;;;;;;;;;;;AAqBG;AACI,MAAM,QAAQ,GAAG,CAAC,CAAU,KAAkB,OAAO,CAAC,KAAK;AAElE;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,MAAM,WAAW,GAAG,CAAK,CAAI,KAClC,OAAO,CAAC,KAAK;AAEf;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,MAAM,QAAQ,GAAG,CAAC,CAAU,KAAkB,OAAO,CAAC,KAAK;AAElE;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,MAAM,WAAW,GAAG,CAAK,CAAI,KAClC,OAAO,CAAC,KAAK;AAEf;;;;;;;;;;;;;;;;;;;;;;;;;AAyBG;AACI,MAAM,QAAQ,GAAG,CAAC,CAAU,KAAkB,OAAO,CAAC,KAAK;AAElE;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AACI,MAAM,WAAW,GAAG,CAAK,CAAI,KAClC,OAAO,CAAC,KAAK;AAEf;;;;;;;;;;;;;;;;;;;;;AAqBG;AACI,MAAM,MAAM,GAAG,CAAC,CAAU,KAAgB,CAAC,KAAK;AAEvD;;;;;;;;;;;;;;;;;;;;;;;AAuBG;AACI,MAAM,SAAS,GAAG,CAAK,CAAW,KAAa,CAAC,KAAK;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;AAyBG;AACI,MAAM,SAAS,GAAG,CAAC,CAAU,KAA4B,CAAC,IAAI;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;AACI,MAAM,YAAY,GAAG,CAAK,CAAI,KAA0B,CAAC,IAAI;;;;"}
1
+ {"version":3,"file":"is-type.mjs","sources":["../../src/guard/is-type.mts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;AAqBG;AACI,MAAM,WAAW,GAAG,CAAC,CAAU,KAAqB,CAAC,KAAK;AAEjE;;;;;;;;;;;;;;;;;;;;;;;AAuBG;AACI,MAAM,cAAc,GAAG,CAAK,CAAI,KACrC,CAAC,KAAK;AAER;;;;;;;;;;;;;;;;;;;;;AAqBG;AACI,MAAM,SAAS,GAAG,CAAC,CAAU,KAAmB,OAAO,CAAC,KAAK;AAEpE;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,MAAM,YAAY,GAAG,CAAK,CAAI,KACnC,OAAO,CAAC,KAAK;AAEf;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,MAAM,QAAQ,GAAG,CAAC,CAAU,KAAkB,OAAO,CAAC,KAAK;AAElE;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,MAAM,WAAW,GAAG,CAAK,CAAI,KAClC,OAAO,CAAC,KAAK;AAEf;;;;;;;;;;;;;;;;;;;;;AAqBG;AACI,MAAM,QAAQ,GAAG,CAAC,CAAU,KAAkB,OAAO,CAAC,KAAK;AAElE;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,MAAM,WAAW,GAAG,CAAK,CAAI,KAClC,OAAO,CAAC,KAAK;AAEf;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,MAAM,QAAQ,GAAG,CAAC,CAAU,KAAkB,OAAO,CAAC,KAAK;AAElE;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,MAAM,WAAW,GAAG,CAAK,CAAI,KAClC,OAAO,CAAC,KAAK;AAEf;;;;;;;;;;;;;;;;;;;;;;;;;AAyBG;AACI,MAAM,QAAQ,GAAG,CAAC,CAAU,KAAkB,OAAO,CAAC,KAAK;AAElE;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AACI,MAAM,WAAW,GAAG,CAAK,CAAI,KAClC,OAAO,CAAC,KAAK;AAEf;;;;;;;;;;;;;;;;;;;;;AAqBG;AACI,MAAM,MAAM,GAAG,CAAC,CAAU,KAAgB,CAAC,KAAK;AAEvD;;;;;;;;;;;;;;;;;;;;;;;AAuBG;AACI,MAAM,SAAS,GAAG,CAAK,CAAW,KAAa,CAAC,KAAK;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BG;AACI,MAAM,SAAS,GAAG,CAAC,CAAU,KAA4B,CAAC,IAAI;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BG;AACI,MAAM,YAAY,GAAG,CAAK,CAAI,KAA0B,CAAC,IAAI;;;;"}
@@ -160,9 +160,9 @@ export declare namespace Num {
160
160
  * - LT[3] = 0 | 1 | 2
161
161
  * - LT[5] = 0 | 1 | 2 | 3 | 4
162
162
  */
163
- type LT = {
163
+ type LT = Readonly<{
164
164
  [N in SmallUint]: Index<N>;
165
- };
165
+ }>;
166
166
  /**
167
167
  * @template N - A SmallUint representing the inclusive upper bound
168
168
  * @internal
@@ -173,9 +173,9 @@ export declare namespace Num {
173
173
  * - LEQ[3] = 0 | 1 | 2 | 3
174
174
  * - LEQ[5] = 0 | 1 | 2 | 3 | 4 | 5
175
175
  */
176
- type LEQ = {
176
+ type LEQ = Readonly<{
177
177
  [N in SmallUint]: Index<N> | N;
178
- };
178
+ }>;
179
179
  /**
180
180
  * Creates a type guard that checks if a number is an unsigned integer within
181
181
  * a specified range.
@@ -1 +1 @@
1
- {"version":3,"file":"num.d.mts","sourceRoot":"","sources":["../../src/number/num.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"num.d.mts","sourceRoot":"","sources":["../../src/number/num.mts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,yBAAiB,GAAG,CAAC;IACnB;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAe,CAAC;IAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,MAAM,CAAC,MAAM,SAAS,GAAI,CAAC,SAAS,MAAM,EACxC,KAAK,CAAC,KACL,GAAG,IAAI,aAAa,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,CAAc,CAAC;IAI5D;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,MAAM,CAAC,MAAM,aAAa,GAAI,CAAC,SAAS,MAAM,EAC5C,KAAK,CAAC,KACL,GAAG,IAAI,iBAAiB,GAAG,cAAc,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CACzD,CAAC;IAEX;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,CAAC,MAAM,UAAU,GAAI,CAAC,SAAS,MAAM,EACzC,KAAK,CAAC,KACL,GAAG,IAAI,cAAc,GAAG,cAAc,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAC3D,CAAC;IAEV;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,MAAM,SAAS,GACnB,YAAY,MAAM,EAAE,YAAY,MAAM,MACtC,GAAG,MAAM,KAAG,OACsB,CAAC;IAEtC;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,MAAM,kBAAkB,GAC5B,YAAY,MAAM,EAAE,YAAY,MAAM,MACtC,GAAG,MAAM,KAAG,OACuB,CAAC;IAEvC;;;;;;;;;OASG;IACH,KAAK,EAAE,GAAG,QAAQ,CAAC;SAAG,CAAC,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC;KAAE,CAAC,CAAC;IAEnD;;;;;;;;;OASG;IACH,KAAK,GAAG,GAAG,QAAQ,CAAC;SAAG,CAAC,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;KAAE,CAAC,CAAC;IAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,MAAM,CAAC,MAAM,aAAa,GACvB,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,SAAS,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,MACtE,GAAG,MAAM,KAAG,CAAC,IAAI,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACY,CAAC;IAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,MAAM,CAAC,MAAM,sBAAsB,GAChC,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,SAAS,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,MACtE,GAAG,MAAM,KAAG,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACY,CAAC;IAElE;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,MAAM,UAAU,KAAK,CACnB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,MAAM,CAAC;IAGV,MAAM,UAAU,KAAK,CACnB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAyB9B;;;;;;;;;;OAUG;IACH,MAAM,CAAC,MAAM,GAAG,GAAI,GAAG,MAAM,EAAE,GAAG,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAG,MAE7D,CAAC;IAER;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,MAAM,MAAM,GACjB,GAAG,MAAM,EACT,GAAG,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,KACjC,MAEwC,CAAC;IAE5C;;;;;;;;;OASG;IACH,MAAM,CAAC,MAAM,OAAO,GAClB,KAAK,MAAM,EACX,WAAW,2BAA2B,KACrC,MAKF,CAAC;IAEF;;;;;;;;;OASG;IAEH,MAAM,CAAC,MAAM,UAAU,GAAI,KAAK,MAAM,KAAG,GAAmC,CAAC;IAE7E;;;;;;;;;OASG;IACH,MAAM,CAAC,MAAM,KAAK,GAChB,OAAO,2BAA2B,KACjC,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAM1B,CAAC;IAEF;;;;;;;;;;OAUG;IACH,MAAM,CAAC,MAAM,gBAAgB,GAAI,CAAC,SAAS,MAAM,EAC/C,KAAK,CAAC,KACL,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,SAIS,CAAC;IAE1C;;;;;;;;;;OAUG;IACH,MAAM,CAAC,MAAM,SAAS,GAAI,CAAC,SAAS,SAAS,EAAE,GAAG,CAAC,KAAG,SAAS,CAAC,CAAC,CAExC,CAAC;IAE1B;;;;;;;;;;OAUG;IACH,MAAM,CAAC,MAAM,SAAS,GAAI,CAAC,SAAS,gBAAgB,EAAE,GAAG,CAAC,KAAG,SAAS,CAAC,CAAC,CAE/C,CAAC;;CAC3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"num.mjs","sources":["../../src/number/num.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"num.mjs","sources":["../../src/number/num.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -173,7 +173,7 @@ export declare namespace Obj {
173
173
  * });
174
174
  *
175
175
  * // Dynamic length array - Partial type applied
176
- * const dynamicEntries: (readonly ['x' | 'y', number])[] = [
176
+ * const dynamicEntries: readonly (readonly ['x' | 'y', number])[] = [
177
177
  * ['x', 10],
178
178
  * ['y', 20],
179
179
  * ];
@@ -124,7 +124,7 @@ var Obj;
124
124
  * });
125
125
  *
126
126
  * // Dynamic length array - Partial type applied
127
- * const dynamicEntries: (readonly ['x' | 'y', number])[] = [
127
+ * const dynamicEntries: readonly (readonly ['x' | 'y', number])[] = [
128
128
  * ['x', 10],
129
129
  * ['y', 20],
130
130
  * ];
@@ -21,10 +21,11 @@
21
21
  * key)
22
22
  * @param fn - The pure function to memoize
23
23
  * @param argsToCacheKey - Function that converts arguments to a unique cache
24
- * key
24
+ * key. Optional for zero-argument functions.
25
25
  * @returns A memoized version of the input function with the same signature
26
26
  *
27
27
  * @see https://en.wikipedia.org/wiki/Memoization
28
28
  */
29
- export declare const memoizeFunction: <const A extends readonly unknown[], R, K extends Primitive>(fn: (...args: A) => R, argsToCacheKey: (...args: A) => K) => ((...args: A) => R);
29
+ export declare function memoizeFunction<R>(fn: () => R): () => R;
30
+ export declare function memoizeFunction<Arg0, const RestArgs extends readonly unknown[], R, K extends Primitive>(fn: (arg0: Arg0, ...args: RestArgs) => R, argsToCacheKey: (arg0: Arg0, ...args: RestArgs) => K): (arg0: Arg0, ...args: RestArgs) => R;
30
31
  //# sourceMappingURL=memoize-function.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memoize-function.d.mts","sourceRoot":"","sources":["../../src/others/memoize-function.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,eAAe,GAC1B,KAAK,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,EAClC,CAAC,EACD,CAAC,SAAS,SAAS,EAEnB,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,EACrB,gBAAgB,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,KAChC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAiBpB,CAAC"}
1
+ {"version":3,"file":"memoize-function.d.mts","sourceRoot":"","sources":["../../src/others/memoize-function.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;AAEzD,wBAAgB,eAAe,CAC7B,IAAI,EACJ,KAAK,CAAC,QAAQ,SAAS,SAAS,OAAO,EAAE,EACzC,CAAC,EACD,CAAC,SAAS,SAAS,EAEnB,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,QAAQ,KAAK,CAAC,EACxC,cAAc,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,QAAQ,KAAK,CAAC,GACnD,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,QAAQ,KAAK,CAAC,CAAC"}
@@ -1,46 +1,17 @@
1
- /**
2
- * Creates a memoized version of a function that caches results based on input
3
- * arguments.
4
- *
5
- * The memoized function stores results in an internal Map and returns cached
6
- * values for repeated calls with the same arguments. This can significantly
7
- * improve performance for expensive computations or I/O operations.
8
- *
9
- * **Important considerations:**
10
- *
11
- * - The cache grows unbounded - consider memory implications for long-running
12
- * applications
13
- * - Cache keys must be primitives (string, number, boolean, symbol, null,
14
- * undefined, bigint)
15
- * - Object arguments require careful key generation to ensure uniqueness
16
- * - Pure functions only - memoizing functions with side effects can lead to bugs
17
- *
18
- * @template A - The tuple type of the function arguments
19
- * @template R - The return type of the function
20
- * @template K - The primitive type used as the cache key (must be valid Map
21
- * key)
22
- * @param fn - The pure function to memoize
23
- * @param argsToCacheKey - Function that converts arguments to a unique cache
24
- * key
25
- * @returns A memoized version of the input function with the same signature
26
- *
27
- * @see https://en.wikipedia.org/wiki/Memoization
28
- */
29
- const memoizeFunction = (fn, argsToCacheKey) => {
1
+ function memoizeFunction(fn, argsToCacheKey) {
30
2
  const mut_cache = new Map();
3
+ const defaultKey = Symbol('memoize-default-key');
31
4
  return (...args) => {
32
- const key = argsToCacheKey(...args);
33
- if (mut_cache.has(key)) {
34
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
35
- return mut_cache.get(key);
36
- }
37
- else {
38
- const result = fn(...args);
39
- mut_cache.set(key, result);
40
- return result;
5
+ const key = argsToCacheKey === undefined ? defaultKey : argsToCacheKey(...args);
6
+ const cached = mut_cache.get(key);
7
+ if (cached !== undefined) {
8
+ return cached.value;
41
9
  }
10
+ const result = fn(...args);
11
+ mut_cache.set(key, { value: result });
12
+ return result;
42
13
  };
43
- };
14
+ }
44
15
 
45
16
  export { memoizeFunction };
46
17
  //# sourceMappingURL=memoize-function.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"memoize-function.mjs","sources":["../../src/others/memoize-function.mts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;MACU,eAAe,GAAG,CAK7B,EAAqB,EACrB,cAAiC,KACV;AACvB,IAAA,MAAM,SAAS,GAAG,IAAI,GAAG,EAAQ;AAEjC,IAAA,OAAO,CAAC,GAAG,IAAO,KAAO;AACvB,QAAA,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,IAAI,CAAC;AAEnC,QAAA,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;;AAEtB,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,GAAG,CAAE;QAC5B;aAAO;AACL,YAAA,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;AAE1B,YAAA,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;AAE1B,YAAA,OAAO,MAAM;QACf;AACF,IAAA,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"memoize-function.mjs","sources":["../../src/others/memoize-function.mts"],"sourcesContent":[null],"names":[],"mappings":"AAwCM,SAAU,eAAe,CAK7B,EAAwB,EACxB,cAAqC,EAAA;AAIrC,IAAA,MAAM,SAAS,GAAG,IAAI,GAAG,EAA0B;AAEnD,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAEhD,IAAA,OAAO,CAAC,GAAG,IAAU,KAAO;AAC1B,QAAA,MAAM,GAAG,GACP,cAAc,KAAK,SAAS,GAAG,UAAU,GAAG,cAAc,CAAC,GAAG,IAAI,CAAC;QAErE,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;AAEjC,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,OAAO,MAAM,CAAC,KAAK;QACrB;AAEA,QAAA,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;QAE1B,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAErC,QAAA,OAAO,MAAM;AACf,IAAA,CAAC;AACH;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-data-forge",
3
- "version": "6.3.0",
3
+ "version": "6.4.0",
4
4
  "private": false,
5
5
  "keywords": [
6
6
  "typescript",
@@ -37,10 +37,12 @@
37
37
  "scripts": {
38
38
  "build": "tsx ./scripts/cmd/build.mts",
39
39
  "build:min": "tsx ./scripts/cmd/build.mts --skip-check",
40
- "check-all": "tsx ./scripts/cmd/check-all.mts",
41
40
  "check:ext": "tsx ./scripts/cmd/check-ext.mts",
41
+ "check-all": "tsx ./scripts/cmd/check-all.mts",
42
42
  "clean": "pnpm run /clean:.*/",
43
43
  "clean:logs": "npx rimraf ./*.log",
44
+ "codemod": "run-s codemod:all fmt",
45
+ "codemod:all": "convert-to-readonly '{src,scripts,samples,test}/**/*.{mts,tsx}'",
44
46
  "cspell": "cspell \"**\" --gitignore --gitignore-root ./ --no-progress",
45
47
  "doc": "tsx ./scripts/cmd/gen-docs.mts",
46
48
  "doc:embed": "tsx ./scripts/cmd/embed-examples.mts",
@@ -77,7 +79,7 @@
77
79
  },
78
80
  "dependencies": {
79
81
  "@sindresorhus/is": "^7.2.0",
80
- "ts-type-forge": "^2.3.0"
82
+ "ts-type-forge": "^2.3.1"
81
83
  },
82
84
  "devDependencies": {
83
85
  "@emotion/react": "11.14.0",
@@ -99,23 +101,24 @@
99
101
  "@vitest/coverage-v8": "4.0.17",
100
102
  "@vitest/ui": "4.0.17",
101
103
  "conventional-changelog-conventionalcommits": "9.1.0",
102
- "cspell": "9.6.0",
104
+ "cspell": "9.6.2",
103
105
  "dedent": "^1.7.1",
104
106
  "eslint": "9.39.2",
105
107
  "eslint-config-typed": "4.6.0",
106
- "github-settings-as-code": "1.0.12",
108
+ "github-settings-as-code": "1.0.11",
107
109
  "immer": "11.1.3",
108
110
  "jiti": "2.6.1",
109
111
  "markdownlint": "0.40.0",
110
112
  "markdownlint-cli2": "0.20.0",
111
113
  "npm-run-all2": "8.0.4",
112
- "playwright": "1.57.0",
113
- "prettier": "3.8.0",
114
+ "playwright": "1.58.0",
115
+ "prettier": "3.8.1",
114
116
  "prettier-plugin-organize-imports": "4.3.0",
115
- "prettier-plugin-packagejson": "2.5.21",
116
- "rollup": "4.55.1",
117
+ "prettier-plugin-packagejson": "3.0.0",
118
+ "rollup": "4.57.0",
117
119
  "semantic-release": "25.0.2",
118
- "ts-repo-utils": "8.0.3",
120
+ "ts-codemod-lib": "^1.1.3",
121
+ "ts-repo-utils": "8.1.0",
119
122
  "tslib": "2.8.1",
120
123
  "tsx": "4.21.0",
121
124
  "typedoc": "0.28.16",
@@ -127,7 +130,7 @@
127
130
  "peerDependencies": {
128
131
  "typescript": ">=4.8"
129
132
  },
130
- "packageManager": "pnpm@10.24.0",
133
+ "packageManager": "pnpm@10.28.2",
131
134
  "engines": {
132
135
  "node": ">=20.11.0",
133
136
  "pnpm": ">=8.0.0"
@@ -145,9 +145,7 @@ export const copy = <const Ar extends readonly unknown[]>(array: Ar): Ar =>
145
145
  // eslint-disable-next-line total-functions/no-unsafe-type-assertion
146
146
  array.slice() as unknown as Ar;
147
147
 
148
- type LT = Readonly<{
149
- [N in SmallUint]: Index<N>;
150
- }>;
148
+ type LT = Readonly<{ [N in SmallUint]: Index<N> }>;
151
149
 
152
150
  type RangeList<S extends SmallUint, E extends SmallUint> =
153
151
  BoolOr<IsUnion<S>, IsUnion<E>> extends true
@@ -141,6 +141,7 @@ describe('Arr creations', () => {
141
141
 
142
142
  const result = create(2, obj);
143
143
 
144
+ // transformer-ignore-next-line
144
145
  expectType<typeof result, readonly [{ id: number }, { id: number }]>(
145
146
  '~=',
146
147
  );
@@ -229,6 +230,7 @@ describe('Arr creations', () => {
229
230
 
230
231
  const copied = copy(original);
231
232
 
233
+ // transformer-ignore-next-line
232
234
  expectType<typeof copied, readonly [{ id: number }, { id: number }]>('=');
233
235
 
234
236
  assert.deepStrictEqual(copied, original);
@@ -271,6 +273,7 @@ describe('Arr creations', () => {
271
273
 
272
274
  const copied = copy(mut_original);
273
275
 
276
+ // transformer-ignore-next-line
274
277
  expectType<typeof copied, number[]>('=');
275
278
 
276
279
  assert.deepStrictEqual(copied, mut_original);
@@ -673,13 +676,18 @@ describe('Arr creations', () => {
673
676
  });
674
677
 
675
678
  test('generator with complex data types', () => {
676
- const result = generate<{ id: number; name: string }>(function* () {
677
- yield { id: 1, name: 'Alice' };
679
+ const result = generate<Readonly<{ id: number; name: string }>>(
680
+ function* () {
681
+ yield { id: 1, name: 'Alice' };
678
682
 
679
- yield { id: 2, name: 'Bob' };
680
- });
683
+ yield { id: 2, name: 'Bob' };
684
+ },
685
+ );
681
686
 
682
- expectType<typeof result, readonly { id: number; name: string }[]>('=');
687
+ expectType<
688
+ typeof result,
689
+ readonly Readonly<{ id: number; name: string }>[]
690
+ >('=');
683
691
 
684
692
  assert.deepStrictEqual(result, [
685
693
  { id: 1, name: 'Alice' },
@@ -66,7 +66,7 @@ export function at<E>(
66
66
  * ```ts
67
67
  * const users = [{ id: 1 }, { id: 2 }];
68
68
  *
69
- * const empty: { id: number }[] = [];
69
+ * const empty: readonly Readonly<{ id: number }>[] = [];
70
70
  *
71
71
  * const first = Arr.head(users);
72
72
  *
@@ -97,7 +97,7 @@ export const head = <const Ar extends readonly unknown[]>(
97
97
  * ```ts
98
98
  * const queue = ['first', 'second'];
99
99
  *
100
- * const emptyQueue: string[] = [];
100
+ * const emptyQueue: readonly string[] = [];
101
101
  *
102
102
  * const lastValue = Arr.last(queue);
103
103
  *