ts-data-forge 6.9.6 → 6.11.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/entry-point.mjs +1 -1
- package/dist/guard/is-non-empty-string.d.mts +2 -2
- package/dist/guard/is-non-empty-string.d.mts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/object/object.d.mts +18 -7
- package/dist/object/object.d.mts.map +1 -1
- package/dist/object/object.mjs +1 -0
- package/dist/object/object.mjs.map +1 -1
- package/dist/others/if-then.d.mts +11 -0
- package/dist/others/if-then.d.mts.map +1 -1
- package/dist/others/if-then.mjs +12 -1
- package/dist/others/if-then.mjs.map +1 -1
- package/dist/others/index.mjs +1 -1
- package/package.json +31 -31
- package/src/guard/is-non-empty-string.mts +2 -2
- package/src/guard/is-non-empty-string.test.mts +3 -2
- package/src/object/object.mts +18 -7
- package/src/others/debounce-function.test.mts +2 -2
- package/src/others/if-then.mts +12 -0
- package/src/others/memoize-function.test.mts +19 -19
package/dist/entry-point.mjs
CHANGED
|
@@ -59,7 +59,7 @@ export { castDeepMutable, castMutable } from './others/cast-mutable.mjs';
|
|
|
59
59
|
export { castDeepReadonly, castReadonly } from './others/cast-readonly.mjs';
|
|
60
60
|
export { debounce } from './others/debounce-function.mjs';
|
|
61
61
|
export { fastDeepEqual } from './others/fast-deep-equal.mjs';
|
|
62
|
-
export { ifThen } from './others/if-then.mjs';
|
|
62
|
+
export { ifThen, implies } from './others/if-then.mjs';
|
|
63
63
|
export { mapNullable } from './others/map-nullable.mjs';
|
|
64
64
|
export { memoizeFunction } from './others/memoize-function.mjs';
|
|
65
65
|
export { tp } from './others/tuple.mjs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type RelaxedExclude } from 'ts-type-forge';
|
|
1
|
+
import { type NonEmptyString, type RelaxedExclude } from 'ts-type-forge';
|
|
2
2
|
/**
|
|
3
3
|
* Type guard that checks if a value is a non-empty string.
|
|
4
4
|
*
|
|
@@ -36,5 +36,5 @@ import { type RelaxedExclude } from 'ts-type-forge';
|
|
|
36
36
|
* `true`, TypeScript narrows the type to exclude empty strings and nullish
|
|
37
37
|
* values.
|
|
38
38
|
*/
|
|
39
|
-
export declare const isNonEmptyString: <S extends string | null | undefined>(s: S) => s is RelaxedExclude<NonNullable<S>, "">;
|
|
39
|
+
export declare const isNonEmptyString: <S extends string | null | undefined>(s: S) => s is NonEmptyString & RelaxedExclude<NonNullable<S>, "">;
|
|
40
40
|
//# sourceMappingURL=is-non-empty-string.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-non-empty-string.d.mts","sourceRoot":"","sources":["../../src/guard/is-non-empty-string.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"is-non-empty-string.d.mts","sourceRoot":"","sources":["../../src/guard/is-non-empty-string.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,MAAM,GAAG,IAAI,GAAG,SAAS,EAClE,GAAG,CAAC,KACH,CAAC,IAAI,cAAc,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CACnB,CAAC"}
|
package/dist/index.mjs
CHANGED
|
@@ -49,7 +49,7 @@ export { castDeepMutable, castMutable } from './others/cast-mutable.mjs';
|
|
|
49
49
|
export { castDeepReadonly, castReadonly } from './others/cast-readonly.mjs';
|
|
50
50
|
export { debounce } from './others/debounce-function.mjs';
|
|
51
51
|
export { fastDeepEqual } from './others/fast-deep-equal.mjs';
|
|
52
|
-
export { ifThen } from './others/if-then.mjs';
|
|
52
|
+
export { ifThen, implies } from './others/if-then.mjs';
|
|
53
53
|
export { mapNullable } from './others/map-nullable.mjs';
|
|
54
54
|
export { memoizeFunction } from './others/memoize-function.mjs';
|
|
55
55
|
export { tp } from './others/tuple.mjs';
|
package/dist/object/object.d.mts
CHANGED
|
@@ -199,6 +199,7 @@ export declare namespace Obj {
|
|
|
199
199
|
*
|
|
200
200
|
* ```ts
|
|
201
201
|
* const a = { a: 0, b: 0 } as const;
|
|
202
|
+
*
|
|
202
203
|
* const b = { b: 1, c: 0 } as const;
|
|
203
204
|
*
|
|
204
205
|
* const result = Obj.merge(a, b);
|
|
@@ -223,11 +224,15 @@ export declare namespace Obj {
|
|
|
223
224
|
*
|
|
224
225
|
* // Direct usage
|
|
225
226
|
* const result = Obj.deepPick(data, ['a', 'b', 'c']);
|
|
227
|
+
*
|
|
226
228
|
* assert.deepStrictEqual(result, { a: { b: { c: 1 } } });
|
|
227
229
|
*
|
|
228
230
|
* // Curried usage with pipe
|
|
229
|
-
* const
|
|
230
|
-
*
|
|
231
|
+
* const pickAB = Obj.deepPick(['a', 'b']);
|
|
232
|
+
*
|
|
233
|
+
* const result2 = pipe(data).map(pickAB).value;
|
|
234
|
+
*
|
|
235
|
+
* assert.deepStrictEqual(result2, { a: { b: { c: 1, d: 2 } } });
|
|
231
236
|
* ```
|
|
232
237
|
*
|
|
233
238
|
* @template R - The type of the input record
|
|
@@ -249,11 +254,15 @@ export declare namespace Obj {
|
|
|
249
254
|
*
|
|
250
255
|
* // Direct usage
|
|
251
256
|
* const result = Obj.deepOmit(data, ['a', 'b', 'c']);
|
|
257
|
+
*
|
|
252
258
|
* assert.deepStrictEqual(result, { a: { b: { d: 2 }, e: 3 }, f: 4 });
|
|
253
259
|
*
|
|
254
260
|
* // Curried usage with pipe
|
|
255
|
-
* const
|
|
256
|
-
*
|
|
261
|
+
* const omitAB = Obj.deepOmit(['a', 'b']);
|
|
262
|
+
*
|
|
263
|
+
* const result2 = pipe(data).map(omitAB).value;
|
|
264
|
+
*
|
|
265
|
+
* assert.deepStrictEqual(result2, { a: { e: 3 }, f: 4 });
|
|
257
266
|
* ```
|
|
258
267
|
*
|
|
259
268
|
* @template R - The type of the input record
|
|
@@ -318,10 +327,12 @@ declare namespace TsDataForgeInternals {
|
|
|
318
327
|
*
|
|
319
328
|
* @example
|
|
320
329
|
* ```ts
|
|
321
|
-
* type A = { x: number; y?: string }
|
|
322
|
-
*
|
|
330
|
+
* type A = Readonly<{ x: number; y?: string }>;
|
|
331
|
+
*
|
|
332
|
+
* type B = Readonly<{ y?: number; z?: boolean }>;
|
|
333
|
+
*
|
|
323
334
|
* type Result = MergeTwo<A, B>;
|
|
324
|
-
* // Result: { x: number; y?: string | number; z?: boolean }
|
|
335
|
+
* // Result: Readonly<{ x: number; y?: string | number; z?: boolean }>
|
|
325
336
|
* ```
|
|
326
337
|
*/
|
|
327
338
|
type MergeTwo<A extends UnknownRecord, B extends UnknownRecord> = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.d.mts","sourceRoot":"","sources":["../../src/object/object.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,IAAI,EACT,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,MAAM,EACX,KAAK,aAAa,EACnB,MAAM,eAAe,CAAC;AAIvB;;;;;;;GAOG;AACH,yBAAiB,GAAG,CAAC;IACnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;IACI,MAAM,SAAS,GACpB,GAAG,aAAa,EAChB,GAAG,aAAa,EAChB,KAAI,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,KAAK,OAAmB,KAClD,OAQF,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;IACH,SAAgB,IAAI,CAClB,KAAK,CAAC,CAAC,SAAS,aAAa,EAC7B,KAAK,CAAC,IAAI,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EACvC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IAGtD,SAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,SAAS,SAAS,WAAW,EAAE,EAC5D,IAAI,EAAE,IAAI,GACT,CAAC,KAAK,CAAC,CAAC,SAAS,aAAa,EAC/B,MAAM,EAAE,CAAC,KACN,WAAW,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IAgCxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4CG;IACH,SAAgB,IAAI,CAClB,KAAK,CAAC,CAAC,SAAS,aAAa,EAC7B,KAAK,CAAC,IAAI,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EACvC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IAGtD,SAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,SAAS,SAAS,WAAW,EAAE,EAC5D,IAAI,EAAE,IAAI,GACT,CAAC,KAAK,CAAC,CAAC,SAAS,aAAa,EAAE,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IA0C7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4CG;IACI,MAAM,WAAW,GACtB,KAAK,CAAC,OAAO,SAAS,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE,EAElE,SAAS,OAAO,KACf,iBAAiB,CAAC,OAAO,CAAC,SAAS,IAAI,GACtC,oBAAoB,CAAC,eAAe,CAAC,OAAO,CAAC,GAC7C,oBAAoB,CAAC,mBAAmB,CACtC,oBAAoB,CAAC,aAAa,CAAC,OAAO,CAAC,EAC3C,cAAc,CACZ,oBAAoB,CAAC,aAAa,CAAC,OAAO,CAAC,EAC3C,oBAAoB,CAAC,eAAe,CAAC,OAAO,CAAC,CAC9C,CAG+B,CAAC;IAEvC
|
|
1
|
+
{"version":3,"file":"object.d.mts","sourceRoot":"","sources":["../../src/object/object.mts"],"names":[],"mappings":"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"}
|
package/dist/object/object.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.mjs","sources":["../../src/object/object.mts"],"sourcesContent":[null],"names":["Arr.isNonEmpty"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA;;;;;;;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;AAEtC
|
|
1
|
+
{"version":3,"file":"object.mjs","sources":["../../src/object/object.mts"],"sourcesContent":[null],"names":["Arr.isNonEmpty"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA;;;;;;;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;AAEtC;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACU,IAAA,GAAA,CAAA,KAAK,GAAG,CACnB,GAAG,OAAgB;;IAGnB,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAU;IAwCxE,SAAgB,QAAQ,CAItB,GAAG,IAA8D,EAAA;AAEjE,QAAA,QAAQ,IAAI,CAAC,MAAM;YACjB,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;gBAE3B;;AAEE,gBAAA,YAAY,CAAC,MAAM,EAAE,IAAI,CAAU;YAEvC;YAEA,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI;gBAEnB,OAAO,CAAC,MAAS,KAAK,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;YAC9C;;IAEJ;AAtBgB,IAAA,GAAA,CAAA,QAAQ,WAsBvB;IAwCD,SAAgB,QAAQ,CAItB,GAAG,IAA8D,EAAA;AAEjE,QAAA,QAAQ,IAAI,CAAC,MAAM;YACjB,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;gBAE3B;;AAEE,gBAAA,YAAY,CAAC,MAAM,EAAE,IAAI,CAAU;YAEvC;YAEA,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI;gBAEnB,OAAO,CAAC,MAAS,KAAK,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;YAC9C;;IAEJ;AAtBgB,IAAA,GAAA,CAAA,QAAQ,WAsBvB;AACH,CAAC,EAlcgB,GAAG,KAAH,GAAG,GAAA,EAAA,CAAA,CAAA;AAocpB,MAAM,YAAY,GAAG,CACnB,MAAqB,EACrB,IAAkC,KACjB;AACjB,IAAA,IAAI,CAACA,UAAc,CAAC,IAAI,CAAC;AAAE,QAAA,OAAO,MAAM;AAExC,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;AAEpB,IAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;AAAE,QAAA,OAAO,EAAE;AAEpC,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;IAE1B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAE1B,IAAA,IAAI,CAACA,UAAc,CAAC,IAAI,CAAC;AAAE,QAAA,OAAO,EAAE,CAAC,IAAI,GAAG,KAAK,EAAE;AAEnD,IAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,EAAE,CAAC,IAAI,GAAG,EAAE,EAAE;IAE3C,OAAO;QACL,CAAC,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC;KAClC;AACH,CAAC;AAED,MAAM,YAAY,GAAG,CACnB,MAAqB,EACrB,IAAkC,KACjB;AACjB,IAAA,IAAI,CAACA,UAAc,CAAC,IAAI,CAAC;AAAE,QAAA,OAAO,MAAM;AAExC,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;IAEpB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAE1B,IAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;AAAE,QAAA,OAAO,MAAM;IAExC,IAAI,CAACA,UAAc,CAAC,IAAI,CAAC,EAAE;QACzB,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CACnD;IACH;AAEA,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;AAE1B,IAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,MAAM;IAEnC,OAAO;AACL,QAAA,GAAG,MAAM;QACT,CAAC,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC;KAClC;AACH,CAAC;;;;"}
|
|
@@ -18,4 +18,15 @@
|
|
|
18
18
|
* @returns `true` if the implication holds, `false` otherwise
|
|
19
19
|
*/
|
|
20
20
|
export declare const ifThen: (antecedent: boolean, consequent: boolean) => boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Alias for {@link ifThen}.
|
|
23
|
+
*
|
|
24
|
+
* Implements the logical implication (if-then) operator.
|
|
25
|
+
*
|
|
26
|
+
* @param antecedent - The condition (if part)
|
|
27
|
+
* @param consequent - The result that should hold if the condition is true
|
|
28
|
+
* (then part)
|
|
29
|
+
* @returns `true` if the implication holds, `false` otherwise
|
|
30
|
+
*/
|
|
31
|
+
export declare const implies: (antecedent: boolean, consequent: boolean) => boolean;
|
|
21
32
|
//# sourceMappingURL=if-then.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"if-then.d.mts","sourceRoot":"","sources":["../../src/others/if-then.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,MAAM,GAAI,YAAY,OAAO,EAAE,YAAY,OAAO,KAAG,OACvC,CAAC"}
|
|
1
|
+
{"version":3,"file":"if-then.d.mts","sourceRoot":"","sources":["../../src/others/if-then.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,MAAM,GAAI,YAAY,OAAO,EAAE,YAAY,OAAO,KAAG,OACvC,CAAC;AAE5B;;;;;;;;;GASG;AACH,eAAO,MAAM,OAAO,eAbe,OAAO,cAAc,OAAO,KAAG,OAarC,CAAC"}
|
package/dist/others/if-then.mjs
CHANGED
|
@@ -18,6 +18,17 @@
|
|
|
18
18
|
* @returns `true` if the implication holds, `false` otherwise
|
|
19
19
|
*/
|
|
20
20
|
const ifThen = (antecedent, consequent) => !antecedent || consequent;
|
|
21
|
+
/**
|
|
22
|
+
* Alias for {@link ifThen}.
|
|
23
|
+
*
|
|
24
|
+
* Implements the logical implication (if-then) operator.
|
|
25
|
+
*
|
|
26
|
+
* @param antecedent - The condition (if part)
|
|
27
|
+
* @param consequent - The result that should hold if the condition is true
|
|
28
|
+
* (then part)
|
|
29
|
+
* @returns `true` if the implication holds, `false` otherwise
|
|
30
|
+
*/
|
|
31
|
+
const implies = ifThen;
|
|
21
32
|
|
|
22
|
-
export { ifThen };
|
|
33
|
+
export { ifThen, implies };
|
|
23
34
|
//# sourceMappingURL=if-then.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"if-then.mjs","sources":["../../src/others/if-then.mts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;AAkBG;AACI,MAAM,MAAM,GAAG,CAAC,UAAmB,EAAE,UAAmB,KAC7D,CAAC,UAAU,IAAI;;;;"}
|
|
1
|
+
{"version":3,"file":"if-then.mjs","sources":["../../src/others/if-then.mts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;AAkBG;AACI,MAAM,MAAM,GAAG,CAAC,UAAmB,EAAE,UAAmB,KAC7D,CAAC,UAAU,IAAI;AAEjB;;;;;;;;;AASG;AACI,MAAM,OAAO,GAAG;;;;"}
|
package/dist/others/index.mjs
CHANGED
|
@@ -2,7 +2,7 @@ export { castDeepMutable, castMutable } from './cast-mutable.mjs';
|
|
|
2
2
|
export { castDeepReadonly, castReadonly } from './cast-readonly.mjs';
|
|
3
3
|
export { debounce } from './debounce-function.mjs';
|
|
4
4
|
export { fastDeepEqual } from './fast-deep-equal.mjs';
|
|
5
|
-
export { ifThen } from './if-then.mjs';
|
|
5
|
+
export { ifThen, implies } from './if-then.mjs';
|
|
6
6
|
export { mapNullable } from './map-nullable.mjs';
|
|
7
7
|
export { memoizeFunction } from './memoize-function.mjs';
|
|
8
8
|
export { tp } from './tuple.mjs';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ts-data-forge",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.11.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -82,13 +82,13 @@
|
|
|
82
82
|
"z:vitest:node": "pnpm run z:vitest --project='Node.js'"
|
|
83
83
|
},
|
|
84
84
|
"dependencies": {
|
|
85
|
-
"@sindresorhus/is": "^8.
|
|
86
|
-
"ts-type-forge": "^3.0
|
|
85
|
+
"@sindresorhus/is": "^8.1.0",
|
|
86
|
+
"ts-type-forge": "^3.2.0"
|
|
87
87
|
},
|
|
88
88
|
"devDependencies": {
|
|
89
89
|
"@emotion/react": "11.14.0",
|
|
90
90
|
"@emotion/styled": "11.14.1",
|
|
91
|
-
"@mui/material": "9.
|
|
91
|
+
"@mui/material": "9.1.1",
|
|
92
92
|
"@rollup/plugin-replace": "6.0.3",
|
|
93
93
|
"@rollup/plugin-strip": "3.0.4",
|
|
94
94
|
"@rollup/plugin-typescript": "12.3.0",
|
|
@@ -96,51 +96,51 @@
|
|
|
96
96
|
"@semantic-release/commit-analyzer": "13.0.1",
|
|
97
97
|
"@semantic-release/exec": "7.1.0",
|
|
98
98
|
"@semantic-release/git": "10.0.1",
|
|
99
|
-
"@semantic-release/github": "12.0.
|
|
99
|
+
"@semantic-release/github": "12.0.8",
|
|
100
100
|
"@semantic-release/npm": "13.1.5",
|
|
101
|
-
"@semantic-release/release-notes-generator": "14.1.
|
|
102
|
-
"@types/node": "
|
|
103
|
-
"@types/react": "19.2.
|
|
104
|
-
"@vitest/browser-playwright": "4.1.
|
|
105
|
-
"@vitest/coverage-v8": "4.1.
|
|
106
|
-
"@vitest/ui": "4.1.
|
|
101
|
+
"@semantic-release/release-notes-generator": "14.1.1",
|
|
102
|
+
"@types/node": "26.0.0",
|
|
103
|
+
"@types/react": "19.2.17",
|
|
104
|
+
"@vitest/browser-playwright": "4.1.9",
|
|
105
|
+
"@vitest/coverage-v8": "4.1.9",
|
|
106
|
+
"@vitest/ui": "4.1.9",
|
|
107
107
|
"conventional-changelog-conventionalcommits": "9.3.1",
|
|
108
|
-
"cspell": "10.0.
|
|
108
|
+
"cspell": "10.0.1",
|
|
109
109
|
"dedent": "1.7.2",
|
|
110
110
|
"eslint": "9.39.4",
|
|
111
|
-
"eslint-config-typed": "4.9.
|
|
112
|
-
"github-settings-as-code": "1.2.
|
|
113
|
-
"immer": "11.1.
|
|
114
|
-
"jiti": "2.
|
|
115
|
-
"markdownlint": "0.
|
|
111
|
+
"eslint-config-typed": "4.9.11",
|
|
112
|
+
"github-settings-as-code": "1.2.9",
|
|
113
|
+
"immer": "11.1.8",
|
|
114
|
+
"jiti": "2.7.0",
|
|
115
|
+
"markdownlint": "0.41.0",
|
|
116
116
|
"markdownlint-cli2": "0.22.1",
|
|
117
|
-
"npm-run-all2": "
|
|
118
|
-
"playwright": "1.
|
|
119
|
-
"prettier": "3.8.
|
|
117
|
+
"npm-run-all2": "9.0.2",
|
|
118
|
+
"playwright": "1.61.0",
|
|
119
|
+
"prettier": "3.8.4",
|
|
120
120
|
"prettier-plugin-organize-imports": "4.3.0",
|
|
121
121
|
"prettier-plugin-packagejson": "3.0.2",
|
|
122
|
-
"react": "19.2.
|
|
123
|
-
"rollup": "4.
|
|
124
|
-
"semantic-release": "25.0.
|
|
125
|
-
"ts-codemod-lib": "2.
|
|
126
|
-
"ts-repo-utils": "10.
|
|
122
|
+
"react": "19.2.7",
|
|
123
|
+
"rollup": "4.62.0",
|
|
124
|
+
"semantic-release": "25.0.5",
|
|
125
|
+
"ts-codemod-lib": "2.2.0",
|
|
126
|
+
"ts-repo-utils": "10.1.2",
|
|
127
127
|
"tslib": "2.8.1",
|
|
128
|
-
"tsx": "4.
|
|
128
|
+
"tsx": "4.22.4",
|
|
129
129
|
"typedoc": "0.28.19",
|
|
130
130
|
"typedoc-github-theme": "0.4.0",
|
|
131
131
|
"typescript": "5.9.3",
|
|
132
|
-
"vite": "8.0.
|
|
133
|
-
"vitest": "4.1.
|
|
132
|
+
"vite": "8.0.16",
|
|
133
|
+
"vitest": "4.1.9"
|
|
134
134
|
},
|
|
135
135
|
"peerDependencies": {
|
|
136
136
|
"typescript": ">=4.8"
|
|
137
137
|
},
|
|
138
|
-
"packageManager": "pnpm@10.
|
|
138
|
+
"packageManager": "pnpm@10.34.4",
|
|
139
139
|
"engines": {
|
|
140
|
-
"node": ">=22.
|
|
140
|
+
"node": ">=22.22.2",
|
|
141
141
|
"pnpm": ">=9.0.0"
|
|
142
142
|
},
|
|
143
143
|
"volta": {
|
|
144
|
-
"node": "
|
|
144
|
+
"node": "26.3.1"
|
|
145
145
|
}
|
|
146
146
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type RelaxedExclude } from 'ts-type-forge';
|
|
1
|
+
import { type NonEmptyString, type RelaxedExclude } from 'ts-type-forge';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Type guard that checks if a value is a non-empty string.
|
|
@@ -39,5 +39,5 @@ import { type RelaxedExclude } from 'ts-type-forge';
|
|
|
39
39
|
*/
|
|
40
40
|
export const isNonEmptyString = <S extends string | null | undefined>(
|
|
41
41
|
s: S,
|
|
42
|
-
): s is RelaxedExclude<NonNullable<S>, ''> =>
|
|
42
|
+
): s is NonEmptyString & RelaxedExclude<NonNullable<S>, ''> =>
|
|
43
43
|
typeof s === 'string' && s.length > 0;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type NonEmptyString } from 'ts-type-forge';
|
|
1
2
|
import { expectType } from '../expect-type.mjs';
|
|
2
3
|
import { isNonEmptyString } from './is-non-empty-string.mjs';
|
|
3
4
|
|
|
@@ -55,7 +56,7 @@ describe(isNonEmptyString, () => {
|
|
|
55
56
|
|
|
56
57
|
// @ts-expect-error Testing non-string types
|
|
57
58
|
if (isNonEmptyString(value)) {
|
|
58
|
-
expectType<typeof value,
|
|
59
|
+
expectType<typeof value, NonEmptyString>('=');
|
|
59
60
|
|
|
60
61
|
// TypeScript knows it's a string
|
|
61
62
|
expect(value.length).toBeGreaterThan(0);
|
|
@@ -68,7 +69,7 @@ describe(isNonEmptyString, () => {
|
|
|
68
69
|
const maybeString: string | undefined | null = 'hello';
|
|
69
70
|
|
|
70
71
|
if (isNonEmptyString(maybeString)) {
|
|
71
|
-
expectType<typeof maybeString,
|
|
72
|
+
expectType<typeof maybeString, NonEmptyString>('=');
|
|
72
73
|
|
|
73
74
|
expect(maybeString.toUpperCase()).toBe('HELLO');
|
|
74
75
|
}
|
package/src/object/object.mts
CHANGED
|
@@ -330,6 +330,7 @@ export namespace Obj {
|
|
|
330
330
|
*
|
|
331
331
|
* ```ts
|
|
332
332
|
* const a = { a: 0, b: 0 } as const;
|
|
333
|
+
*
|
|
333
334
|
* const b = { b: 1, c: 0 } as const;
|
|
334
335
|
*
|
|
335
336
|
* const result = Obj.merge(a, b);
|
|
@@ -359,11 +360,15 @@ export namespace Obj {
|
|
|
359
360
|
*
|
|
360
361
|
* // Direct usage
|
|
361
362
|
* const result = Obj.deepPick(data, ['a', 'b', 'c']);
|
|
363
|
+
*
|
|
362
364
|
* assert.deepStrictEqual(result, { a: { b: { c: 1 } } });
|
|
363
365
|
*
|
|
364
366
|
* // Curried usage with pipe
|
|
365
|
-
* const
|
|
366
|
-
*
|
|
367
|
+
* const pickAB = Obj.deepPick(['a', 'b']);
|
|
368
|
+
*
|
|
369
|
+
* const result2 = pipe(data).map(pickAB).value;
|
|
370
|
+
*
|
|
371
|
+
* assert.deepStrictEqual(result2, { a: { b: { c: 1, d: 2 } } });
|
|
367
372
|
* ```
|
|
368
373
|
*
|
|
369
374
|
* @template R - The type of the input record
|
|
@@ -417,11 +422,15 @@ export namespace Obj {
|
|
|
417
422
|
*
|
|
418
423
|
* // Direct usage
|
|
419
424
|
* const result = Obj.deepOmit(data, ['a', 'b', 'c']);
|
|
425
|
+
*
|
|
420
426
|
* assert.deepStrictEqual(result, { a: { b: { d: 2 }, e: 3 }, f: 4 });
|
|
421
427
|
*
|
|
422
428
|
* // Curried usage with pipe
|
|
423
|
-
* const
|
|
424
|
-
*
|
|
429
|
+
* const omitAB = Obj.deepOmit(['a', 'b']);
|
|
430
|
+
*
|
|
431
|
+
* const result2 = pipe(data).map(omitAB).value;
|
|
432
|
+
*
|
|
433
|
+
* assert.deepStrictEqual(result2, { a: { e: 3 }, f: 4 });
|
|
425
434
|
* ```
|
|
426
435
|
*
|
|
427
436
|
* @template R - The type of the input record
|
|
@@ -620,10 +629,12 @@ declare namespace TsDataForgeInternals {
|
|
|
620
629
|
*
|
|
621
630
|
* @example
|
|
622
631
|
* ```ts
|
|
623
|
-
* type A = { x: number; y?: string }
|
|
624
|
-
*
|
|
632
|
+
* type A = Readonly<{ x: number; y?: string }>;
|
|
633
|
+
*
|
|
634
|
+
* type B = Readonly<{ y?: number; z?: boolean }>;
|
|
635
|
+
*
|
|
625
636
|
* type Result = MergeTwo<A, B>;
|
|
626
|
-
* // Result: { x: number; y?: string | number; z?: boolean }
|
|
637
|
+
* // Result: Readonly<{ x: number; y?: string | number; z?: boolean }>
|
|
627
638
|
* ```
|
|
628
639
|
*/
|
|
629
640
|
// transformer-ignore-next-line
|
|
@@ -28,7 +28,7 @@ describe(debounce, () => {
|
|
|
28
28
|
|
|
29
29
|
vi.advanceTimersByTime(50);
|
|
30
30
|
|
|
31
|
-
expect(func).
|
|
31
|
+
expect(func).toHaveBeenCalledExactlyOnceWith();
|
|
32
32
|
});
|
|
33
33
|
|
|
34
34
|
test('should only execute the function once after multiple rapid calls', () => {
|
|
@@ -46,7 +46,7 @@ describe(debounce, () => {
|
|
|
46
46
|
|
|
47
47
|
vi.advanceTimersByTime(100);
|
|
48
48
|
|
|
49
|
-
expect(func).
|
|
49
|
+
expect(func).toHaveBeenCalledExactlyOnceWith();
|
|
50
50
|
});
|
|
51
51
|
|
|
52
52
|
test('should pass the arguments to the original function', () => {
|
package/src/others/if-then.mts
CHANGED
|
@@ -19,3 +19,15 @@
|
|
|
19
19
|
*/
|
|
20
20
|
export const ifThen = (antecedent: boolean, consequent: boolean): boolean =>
|
|
21
21
|
!antecedent || consequent;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Alias for {@link ifThen}.
|
|
25
|
+
*
|
|
26
|
+
* Implements the logical implication (if-then) operator.
|
|
27
|
+
*
|
|
28
|
+
* @param antecedent - The condition (if part)
|
|
29
|
+
* @param consequent - The result that should hold if the condition is true
|
|
30
|
+
* (then part)
|
|
31
|
+
* @returns `true` if the implication holds, `false` otherwise
|
|
32
|
+
*/
|
|
33
|
+
export const implies = ifThen;
|
|
@@ -9,12 +9,12 @@ describe(memoizeFunction, () => {
|
|
|
9
9
|
// First call
|
|
10
10
|
expect(memoized(5)).toBe(10);
|
|
11
11
|
|
|
12
|
-
expect(mockFn).
|
|
12
|
+
expect(mockFn).toHaveBeenCalledExactlyOnceWith(5);
|
|
13
13
|
|
|
14
14
|
// Second call with same argument - should use cache
|
|
15
15
|
expect(memoized(5)).toBe(10);
|
|
16
16
|
|
|
17
|
-
expect(mockFn).
|
|
17
|
+
expect(mockFn).toHaveBeenCalledExactlyOnceWith(5);
|
|
18
18
|
|
|
19
19
|
// Call with different argument
|
|
20
20
|
expect(memoized(3)).toBe(6);
|
|
@@ -29,11 +29,11 @@ describe(memoizeFunction, () => {
|
|
|
29
29
|
|
|
30
30
|
expect(memoized(2, 3)).toBe(5);
|
|
31
31
|
|
|
32
|
-
expect(mockFn).
|
|
32
|
+
expect(mockFn).toHaveBeenCalledExactlyOnceWith(2, 3);
|
|
33
33
|
|
|
34
34
|
expect(memoized(2, 3)).toBe(5);
|
|
35
35
|
|
|
36
|
-
expect(mockFn).
|
|
36
|
+
expect(mockFn).toHaveBeenCalledExactlyOnceWith(2, 3);
|
|
37
37
|
|
|
38
38
|
expect(memoized(3, 2)).toBe(5);
|
|
39
39
|
|
|
@@ -48,14 +48,14 @@ describe(memoizeFunction, () => {
|
|
|
48
48
|
// eslint-disable-next-line @typescript-eslint/no-confusing-void-expression
|
|
49
49
|
expect(memoized(5)).toBeUndefined();
|
|
50
50
|
|
|
51
|
-
expect(mockFn).
|
|
51
|
+
expect(mockFn).toHaveBeenCalledExactlyOnceWith(5);
|
|
52
52
|
|
|
53
53
|
// Should use cache even for undefined
|
|
54
54
|
|
|
55
55
|
// eslint-disable-next-line @typescript-eslint/no-confusing-void-expression
|
|
56
56
|
expect(memoized(5)).toBeUndefined();
|
|
57
57
|
|
|
58
|
-
expect(mockFn).
|
|
58
|
+
expect(mockFn).toHaveBeenCalledExactlyOnceWith(5);
|
|
59
59
|
});
|
|
60
60
|
|
|
61
61
|
test('should work with object arguments using primitive cache keys', () => {
|
|
@@ -73,12 +73,12 @@ describe(memoizeFunction, () => {
|
|
|
73
73
|
|
|
74
74
|
expect(memoized(user1)).toBe('Hello Alice');
|
|
75
75
|
|
|
76
|
-
expect(mockFn).
|
|
76
|
+
expect(mockFn).toHaveBeenCalledExactlyOnceWith(user1);
|
|
77
77
|
|
|
78
78
|
// Same id, should use cache (even though name is different)
|
|
79
79
|
expect(memoized(user2)).toBe('Hello Alice');
|
|
80
80
|
|
|
81
|
-
expect(mockFn).
|
|
81
|
+
expect(mockFn).toHaveBeenCalledExactlyOnceWith(user1);
|
|
82
82
|
|
|
83
83
|
// Different id, should call function
|
|
84
84
|
expect(memoized(user3)).toBe('Hello Charlie');
|
|
@@ -133,11 +133,11 @@ describe(memoizeFunction, () => {
|
|
|
133
133
|
|
|
134
134
|
expect(memoized(null)).toBe('default');
|
|
135
135
|
|
|
136
|
-
expect(mockFn).
|
|
136
|
+
expect(mockFn).toHaveBeenCalledExactlyOnceWith(null);
|
|
137
137
|
|
|
138
138
|
expect(memoized(null)).toBe('default');
|
|
139
139
|
|
|
140
|
-
expect(mockFn).
|
|
140
|
+
expect(mockFn).toHaveBeenCalledExactlyOnceWith(null);
|
|
141
141
|
|
|
142
142
|
expect(memoized(undefined)).toBe('default');
|
|
143
143
|
|
|
@@ -156,19 +156,19 @@ describe(memoizeFunction, () => {
|
|
|
156
156
|
// First call
|
|
157
157
|
const result1 = memoized();
|
|
158
158
|
|
|
159
|
-
expect(mockFn).
|
|
159
|
+
expect(mockFn).toHaveBeenCalledExactlyOnceWith();
|
|
160
160
|
|
|
161
161
|
// Second call - should use cache and return the same random value
|
|
162
162
|
const result2 = memoized();
|
|
163
163
|
|
|
164
|
-
expect(mockFn).
|
|
164
|
+
expect(mockFn).toHaveBeenCalledExactlyOnceWith();
|
|
165
165
|
|
|
166
166
|
expect(result2).toBe(result1);
|
|
167
167
|
|
|
168
168
|
// Third call - still using cache
|
|
169
169
|
const result3 = memoized();
|
|
170
170
|
|
|
171
|
-
expect(mockFn).
|
|
171
|
+
expect(mockFn).toHaveBeenCalledExactlyOnceWith();
|
|
172
172
|
|
|
173
173
|
expect(result3).toBe(result1);
|
|
174
174
|
});
|
|
@@ -186,18 +186,18 @@ describe(memoizeFunction, () => {
|
|
|
186
186
|
|
|
187
187
|
expect(memoized2(5)).toBe(15);
|
|
188
188
|
|
|
189
|
-
expect(fn1).
|
|
189
|
+
expect(fn1).toHaveBeenCalledExactlyOnceWith(5);
|
|
190
190
|
|
|
191
|
-
expect(fn2).
|
|
191
|
+
expect(fn2).toHaveBeenCalledExactlyOnceWith(5);
|
|
192
192
|
|
|
193
193
|
// Each has its own cache
|
|
194
194
|
expect(memoized1(5)).toBe(10);
|
|
195
195
|
|
|
196
196
|
expect(memoized2(5)).toBe(15);
|
|
197
197
|
|
|
198
|
-
expect(fn1).
|
|
198
|
+
expect(fn1).toHaveBeenCalledExactlyOnceWith(5);
|
|
199
199
|
|
|
200
|
-
expect(fn2).
|
|
200
|
+
expect(fn2).toHaveBeenCalledExactlyOnceWith(5);
|
|
201
201
|
});
|
|
202
202
|
|
|
203
203
|
test('should work with complex cache key generation', () => {
|
|
@@ -236,12 +236,12 @@ describe(memoizeFunction, () => {
|
|
|
236
236
|
|
|
237
237
|
expect(memoized(args1)).toBe('books/fiction/123');
|
|
238
238
|
|
|
239
|
-
expect(mockFn).
|
|
239
|
+
expect(mockFn).toHaveBeenCalledExactlyOnceWith(args1);
|
|
240
240
|
|
|
241
241
|
// Same cache key, should use cache
|
|
242
242
|
expect(memoized(args2)).toBe('books/fiction/123');
|
|
243
243
|
|
|
244
|
-
expect(mockFn).
|
|
244
|
+
expect(mockFn).toHaveBeenCalledExactlyOnceWith(args1);
|
|
245
245
|
|
|
246
246
|
// Different id, different cache key
|
|
247
247
|
expect(memoized(args3)).toBe('books/fiction/124');
|