@adviser/cement 0.5.1 → 0.5.3
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/cjs/keyed-ng.test.cjs +6 -5
- package/cjs/keyed-ng.test.cjs.map +1 -1
- package/cjs/on-func.cjs +15 -1
- package/cjs/on-func.cjs.map +1 -1
- package/cjs/on-func.d.ts +1 -0
- package/cjs/on-func.d.ts.map +1 -1
- package/cjs/on-func.test.cjs +34 -0
- package/cjs/on-func.test.cjs.map +1 -1
- package/cjs/resolve-once.cjs +60 -32
- package/cjs/resolve-once.cjs.map +1 -1
- package/cjs/resolve-once.d.ts +30 -19
- package/cjs/resolve-once.d.ts.map +1 -1
- package/cjs/resolve-once.test.cjs +105 -27
- package/cjs/resolve-once.test.cjs.map +1 -1
- package/cjs/result.cjs +6 -0
- package/cjs/result.cjs.map +1 -1
- package/cjs/result.d.ts +2 -0
- package/cjs/result.d.ts.map +1 -1
- package/cjs/timeouted.cjs +13 -18
- package/cjs/timeouted.cjs.map +1 -1
- package/cjs/timeouted.d.ts +23 -27
- package/cjs/timeouted.d.ts.map +1 -1
- package/cjs/timeouted.test.cjs +31 -1
- package/cjs/timeouted.test.cjs.map +1 -1
- package/cjs/utils/to-sorted.d.ts +1 -1
- package/cjs/utils/to-sorted.d.ts.map +1 -1
- package/cjs/version.cjs +1 -1
- package/deno.json +1 -1
- package/esm/keyed-ng.test.js +6 -5
- package/esm/keyed-ng.test.js.map +1 -1
- package/esm/on-func.d.ts +1 -0
- package/esm/on-func.d.ts.map +1 -1
- package/esm/on-func.js +15 -1
- package/esm/on-func.js.map +1 -1
- package/esm/on-func.test.js +34 -0
- package/esm/on-func.test.js.map +1 -1
- package/esm/resolve-once.d.ts +30 -19
- package/esm/resolve-once.d.ts.map +1 -1
- package/esm/resolve-once.js +60 -32
- package/esm/resolve-once.js.map +1 -1
- package/esm/resolve-once.test.js +73 -28
- package/esm/resolve-once.test.js.map +1 -1
- package/esm/result.d.ts +2 -0
- package/esm/result.d.ts.map +1 -1
- package/esm/result.js +6 -0
- package/esm/result.js.map +1 -1
- package/esm/timeouted.d.ts +23 -27
- package/esm/timeouted.d.ts.map +1 -1
- package/esm/timeouted.js +13 -18
- package/esm/timeouted.js.map +1 -1
- package/esm/timeouted.test.js +32 -2
- package/esm/timeouted.test.js.map +1 -1
- package/esm/utils/to-sorted.d.ts +1 -1
- package/esm/utils/to-sorted.d.ts.map +1 -1
- package/esm/version.js +1 -1
- package/package.json +2 -2
- package/src/on-func.ts +39 -1
- package/src/resolve-once.ts +192 -106
- package/src/result.ts +7 -0
- package/src/timeouted.ts +39 -65
- package/src/utils/to-sorted.ts +1 -1
- package/ts/cjs/keyed-ng.test.js +6 -5
- package/ts/cjs/keyed-ng.test.js.map +1 -1
- package/ts/cjs/on-func.d.ts +1 -0
- package/ts/cjs/on-func.d.ts.map +1 -1
- package/ts/cjs/on-func.js +15 -1
- package/ts/cjs/on-func.js.map +1 -1
- package/ts/cjs/on-func.test.js +34 -0
- package/ts/cjs/on-func.test.js.map +1 -1
- package/ts/cjs/resolve-once.d.ts +30 -19
- package/ts/cjs/resolve-once.d.ts.map +1 -1
- package/ts/cjs/resolve-once.js +60 -32
- package/ts/cjs/resolve-once.js.map +1 -1
- package/ts/cjs/resolve-once.test.js +105 -27
- package/ts/cjs/resolve-once.test.js.map +1 -1
- package/ts/cjs/result.d.ts +2 -0
- package/ts/cjs/result.d.ts.map +1 -1
- package/ts/cjs/result.js +6 -0
- package/ts/cjs/result.js.map +1 -1
- package/ts/cjs/timeouted.d.ts +23 -27
- package/ts/cjs/timeouted.d.ts.map +1 -1
- package/ts/cjs/timeouted.js +13 -18
- package/ts/cjs/timeouted.js.map +1 -1
- package/ts/cjs/timeouted.test.js +31 -1
- package/ts/cjs/timeouted.test.js.map +1 -1
- package/ts/cjs/utils/to-sorted.d.ts +1 -1
- package/ts/cjs/utils/to-sorted.d.ts.map +1 -1
- package/ts/cjs/version.js +1 -1
- package/ts/esm/keyed-ng.test.js +6 -5
- package/ts/esm/keyed-ng.test.js.map +1 -1
- package/ts/esm/on-func.d.ts +1 -0
- package/ts/esm/on-func.d.ts.map +1 -1
- package/ts/esm/on-func.js +15 -1
- package/ts/esm/on-func.js.map +1 -1
- package/ts/esm/on-func.test.js +34 -0
- package/ts/esm/on-func.test.js.map +1 -1
- package/ts/esm/resolve-once.d.ts +30 -19
- package/ts/esm/resolve-once.d.ts.map +1 -1
- package/ts/esm/resolve-once.js +60 -32
- package/ts/esm/resolve-once.js.map +1 -1
- package/ts/esm/resolve-once.test.js +73 -28
- package/ts/esm/resolve-once.test.js.map +1 -1
- package/ts/esm/result.d.ts +2 -0
- package/ts/esm/result.d.ts.map +1 -1
- package/ts/esm/result.js +6 -0
- package/ts/esm/result.js.map +1 -1
- package/ts/esm/timeouted.d.ts +23 -27
- package/ts/esm/timeouted.d.ts.map +1 -1
- package/ts/esm/timeouted.js +13 -18
- package/ts/esm/timeouted.js.map +1 -1
- package/ts/esm/timeouted.test.js +32 -2
- package/ts/esm/timeouted.test.js.map +1 -1
- package/ts/esm/utils/to-sorted.d.ts +1 -1
- package/ts/esm/utils/to-sorted.d.ts.map +1 -1
- package/ts/esm/version.js +1 -1
package/esm/resolve-once.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Future } from "./future.js";
|
|
2
|
-
import { UnPromisify } from "./is-promise.js";
|
|
3
2
|
import { UnregFn } from "./lru-map-set.js";
|
|
4
3
|
import { Result } from "./result.js";
|
|
5
4
|
import { Option } from "./option.js";
|
|
@@ -20,36 +19,48 @@ export declare class ResolveSeq<T, CTX extends NonNullable<object> = object> {
|
|
|
20
19
|
add<R extends Promise<T> | T>(fn: (c: CTX) => R, id?: number): R;
|
|
21
20
|
}
|
|
22
21
|
type ResolveState = "initial" | "processed" | "waiting" | "processing";
|
|
23
|
-
export type ResultOnce<R> = R extends Promise<
|
|
24
|
-
export interface
|
|
22
|
+
export type ResultOnce<R> = R extends Promise<unknown> ? Promise<Awaited<R>> : R;
|
|
23
|
+
export interface OnceActionArg<R, CTX> {
|
|
24
|
+
readonly ctx: CTX;
|
|
25
|
+
readonly self: ResolveOnceIf<R, CTX>;
|
|
26
|
+
}
|
|
27
|
+
export interface ResolveOnceIf<R, CTX> {
|
|
25
28
|
get ready(): boolean;
|
|
26
|
-
get value():
|
|
29
|
+
get value(): R | undefined;
|
|
27
30
|
get error(): Error | undefined;
|
|
28
31
|
get state(): ResolveState;
|
|
29
|
-
|
|
30
|
-
|
|
32
|
+
setResetAfter(ms?: number): void;
|
|
33
|
+
once<RET extends R | Promise<R>>(fn: (arg: OnceActionArg<R, CTX>) => RET): ResultOnce<RET>;
|
|
34
|
+
reset<RET extends R | Promise<R>>(fn?: (arg: OnceActionArg<R, CTX>) => RET): ResultOnce<RET>;
|
|
35
|
+
setProcessed(state: StateInstance): void;
|
|
36
|
+
}
|
|
37
|
+
export interface SyncOrAsyncIf<T> {
|
|
38
|
+
get value(): T | undefined;
|
|
39
|
+
get error(): Error | undefined;
|
|
40
|
+
get queueLength(): number;
|
|
41
|
+
resolve<RET extends T | Promise<T>>(fn: () => RET): ResultOnce<RET>;
|
|
31
42
|
}
|
|
32
|
-
export
|
|
43
|
+
export type SyncOrAsync<T> = Option<SyncOrAsyncIf<T>>;
|
|
44
|
+
export declare class SyncResolveOnce<T, CTX> implements SyncOrAsyncIf<T> {
|
|
33
45
|
#private;
|
|
34
46
|
readonly queueLength: number;
|
|
35
47
|
constructor(rOnce: ResolveOnce<T, CTX>, state: StateInstance);
|
|
36
48
|
get value(): T | undefined;
|
|
37
49
|
get error(): Error | undefined;
|
|
38
50
|
get ready(): boolean;
|
|
39
|
-
resolve(fn: (
|
|
40
|
-
reset(fn?: (c?: CTX) => T): T | undefined;
|
|
51
|
+
resolve<RET extends T | Promise<T>>(fn: () => RET): ResultOnce<RET>;
|
|
41
52
|
}
|
|
42
|
-
export declare class AsyncResolveOnce<T, CTX
|
|
53
|
+
export declare class AsyncResolveOnce<T, CTX> implements SyncOrAsyncIf<T> {
|
|
43
54
|
#private;
|
|
44
|
-
constructor(rOnce:
|
|
55
|
+
constructor(rOnce: ResolveOnceIf<T, CTX>, state: StateInstance, prev: SyncOrAsync<T>);
|
|
45
56
|
get queueLength(): number;
|
|
46
|
-
get value():
|
|
57
|
+
get value(): T | undefined;
|
|
47
58
|
get error(): Error | undefined;
|
|
48
|
-
resolve(fn: (
|
|
49
|
-
reset(fn?: (c?: CTX) => T): T;
|
|
59
|
+
resolve<RET extends T | Promise<T>>(fn: () => RET): ResultOnce<RET>;
|
|
50
60
|
}
|
|
51
61
|
export interface ResolveOnceOpts {
|
|
52
62
|
readonly resetAfter?: number;
|
|
63
|
+
readonly skipUnref?: boolean;
|
|
53
64
|
}
|
|
54
65
|
declare class StateInstance {
|
|
55
66
|
#private;
|
|
@@ -64,20 +75,20 @@ declare class StateInstance {
|
|
|
64
75
|
setWaiting(): void;
|
|
65
76
|
equals(other: StateInstance): boolean;
|
|
66
77
|
}
|
|
67
|
-
type SyncOrAsync<T, CTX> = Option<SyncResolveOnce<T, CTX> | AsyncResolveOnce<T, CTX>>;
|
|
68
78
|
export declare class ResolveOnce<T, CTX = void> implements ResolveOnceIf<T, CTX> {
|
|
69
79
|
#private;
|
|
70
80
|
resetAfterTimer?: ReturnType<typeof setTimeout>;
|
|
71
|
-
readonly
|
|
81
|
+
readonly _onceArg: OnceActionArg<T, CTX>;
|
|
72
82
|
constructor(ctx?: CTX, opts?: ResolveOnceOpts);
|
|
73
83
|
get state(): ResolveState;
|
|
74
84
|
setProcessed(state: StateInstance): void;
|
|
75
85
|
get ready(): boolean;
|
|
76
|
-
get value():
|
|
86
|
+
get value(): T | undefined;
|
|
77
87
|
get queueLength(): number;
|
|
78
88
|
get error(): Error | undefined;
|
|
79
|
-
once<
|
|
80
|
-
reset<
|
|
89
|
+
once<RET extends T | Promise<T>>(fn: (arg: OnceActionArg<T, CTX>) => RET): ResultOnce<RET>;
|
|
90
|
+
reset<RET extends T | Promise<T>>(fn?: (arg: OnceActionArg<T, CTX>) => RET): ResultOnce<RET>;
|
|
91
|
+
setResetAfter(ms?: number): void;
|
|
81
92
|
}
|
|
82
93
|
export interface KeyItem<K, V> {
|
|
83
94
|
readonly key: K;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-once.d.ts","sourceRoot":"","sources":["../../../src/resolve-once.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve-once.d.ts","sourceRoot":"","sources":["../../../src/resolve-once.ts"],"names":[],"mappings":"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"}
|
package/esm/resolve-once.js
CHANGED
|
@@ -3,6 +3,7 @@ import { isPromise } from "./is-promise.js";
|
|
|
3
3
|
import { Result } from "./result.js";
|
|
4
4
|
import { Option } from "./option.js";
|
|
5
5
|
import { KeyedNg } from "./keyed-ng.js";
|
|
6
|
+
import { runtimeFn } from "./runtime.js";
|
|
6
7
|
export class ResolveSeq {
|
|
7
8
|
ctx;
|
|
8
9
|
_seqFutures = [];
|
|
@@ -76,7 +77,7 @@ export class SyncResolveOnce {
|
|
|
76
77
|
resolve(fn) {
|
|
77
78
|
if (this.#state.isProcessing()) {
|
|
78
79
|
try {
|
|
79
|
-
this.#value = fn(
|
|
80
|
+
this.#value = fn();
|
|
80
81
|
}
|
|
81
82
|
catch (e) {
|
|
82
83
|
this.#error = e;
|
|
@@ -94,15 +95,6 @@ export class SyncResolveOnce {
|
|
|
94
95
|
}
|
|
95
96
|
return this.#value;
|
|
96
97
|
}
|
|
97
|
-
reset(fn) {
|
|
98
|
-
this.#value = undefined;
|
|
99
|
-
this.#error = undefined;
|
|
100
|
-
if (fn) {
|
|
101
|
-
this.#state.setProcessing();
|
|
102
|
-
return this.resolve(fn);
|
|
103
|
-
}
|
|
104
|
-
return undefined;
|
|
105
|
-
}
|
|
106
98
|
}
|
|
107
99
|
class AsyncResolveItem {
|
|
108
100
|
id = Math.random();
|
|
@@ -150,7 +142,7 @@ class AsyncResolveItem {
|
|
|
150
142
|
}
|
|
151
143
|
throw new Error(`AsyncResolveItem.#promiseResult impossible: ${this.#state.getResolveState()}`);
|
|
152
144
|
}
|
|
153
|
-
resolve() {
|
|
145
|
+
resolve(_fn) {
|
|
154
146
|
if (this.#state.isWaiting()) {
|
|
155
147
|
const future = new Future();
|
|
156
148
|
this.#queue.push(future);
|
|
@@ -220,7 +212,7 @@ export class AsyncResolveOnce {
|
|
|
220
212
|
this.#state.setWaiting();
|
|
221
213
|
let promiseResult;
|
|
222
214
|
try {
|
|
223
|
-
const couldBePromise = fn(
|
|
215
|
+
const couldBePromise = fn();
|
|
224
216
|
if (!isPromise(couldBePromise)) {
|
|
225
217
|
promiseResult = Promise.resolve(couldBePromise);
|
|
226
218
|
}
|
|
@@ -239,14 +231,7 @@ export class AsyncResolveOnce {
|
|
|
239
231
|
.filter((i) => i !== undefined)
|
|
240
232
|
.reverse()
|
|
241
233
|
.forEach((idx) => this.#queue.splice(idx, 1));
|
|
242
|
-
return this.#active().resolve();
|
|
243
|
-
}
|
|
244
|
-
reset(fn) {
|
|
245
|
-
this.#state.setProcessing();
|
|
246
|
-
if (fn) {
|
|
247
|
-
return this.resolve(fn);
|
|
248
|
-
}
|
|
249
|
-
return undefined;
|
|
234
|
+
return this.#active().resolve(fn);
|
|
250
235
|
}
|
|
251
236
|
}
|
|
252
237
|
class StateInstance {
|
|
@@ -285,10 +270,13 @@ export class ResolveOnce {
|
|
|
285
270
|
#syncOrAsync = Option.None();
|
|
286
271
|
#opts;
|
|
287
272
|
resetAfterTimer;
|
|
288
|
-
|
|
273
|
+
_onceArg;
|
|
289
274
|
constructor(ctx, opts) {
|
|
290
|
-
this
|
|
291
|
-
this
|
|
275
|
+
this.#opts = { ...(opts ?? {}) };
|
|
276
|
+
this._onceArg = {
|
|
277
|
+
ctx: ctx,
|
|
278
|
+
self: this,
|
|
279
|
+
};
|
|
292
280
|
}
|
|
293
281
|
get state() {
|
|
294
282
|
return this.#state.getResolveState();
|
|
@@ -301,8 +289,41 @@ export class ResolveOnce {
|
|
|
301
289
|
this.#state.setProcessed();
|
|
302
290
|
if (typeof this.#opts.resetAfter === "number" && this.#opts.resetAfter > 0) {
|
|
303
291
|
this.resetAfterTimer = setTimeout(() => {
|
|
304
|
-
this.reset();
|
|
292
|
+
void this.reset();
|
|
305
293
|
}, this.#opts.resetAfter);
|
|
294
|
+
if (!this.#opts.skipUnref && this.resetAfterTimer) {
|
|
295
|
+
const runtime = runtimeFn();
|
|
296
|
+
switch (true) {
|
|
297
|
+
case runtime.isDeno:
|
|
298
|
+
{
|
|
299
|
+
let id = this.resetAfterTimer;
|
|
300
|
+
if (typeof Deno.unrefTimer === "function") {
|
|
301
|
+
if (typeof this.resetAfterTimer === "number") {
|
|
302
|
+
id = this.resetAfterTimer;
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
try {
|
|
306
|
+
const ret = Reflect.ownKeys(this.resetAfterTimer).find((key) => {
|
|
307
|
+
return key.toString().includes("timerId");
|
|
308
|
+
});
|
|
309
|
+
if (ret) {
|
|
310
|
+
id = this.resetAfterTimer[ret];
|
|
311
|
+
console.warn("Deno.unrefTimer timerId from struct:", id, "version:", globalThis.Deno?.version);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
catch (e) {
|
|
315
|
+
console.warn("Deno.unrefTimer failed to get timerId", e, "id:", this.resetAfterTimer, "version:", globalThis.Deno?.version);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
Deno.unrefTimer(id);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
break;
|
|
322
|
+
case runtime.isNodeIsh:
|
|
323
|
+
this.resetAfterTimer.unref();
|
|
324
|
+
break;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
306
327
|
}
|
|
307
328
|
}
|
|
308
329
|
}
|
|
@@ -333,11 +354,7 @@ export class ResolveOnce {
|
|
|
333
354
|
const state = this.#state;
|
|
334
355
|
try {
|
|
335
356
|
state.setProcessing();
|
|
336
|
-
|
|
337
|
-
if (this.#syncOrAsync.IsSome()) {
|
|
338
|
-
prev = this.#syncOrAsync.Unwrap().value;
|
|
339
|
-
}
|
|
340
|
-
const isSyncOrAsync = fn(this._ctx ?? {}, prev);
|
|
357
|
+
const isSyncOrAsync = fn(this._onceArg);
|
|
341
358
|
if (isPromise(isSyncOrAsync)) {
|
|
342
359
|
this.#syncOrAsync = Option.Some(new AsyncResolveOnce(this, state, this.#syncOrAsync));
|
|
343
360
|
}
|
|
@@ -354,7 +371,7 @@ export class ResolveOnce {
|
|
|
354
371
|
}
|
|
355
372
|
}
|
|
356
373
|
else {
|
|
357
|
-
resultFn = fn;
|
|
374
|
+
resultFn = () => fn(this._onceArg);
|
|
358
375
|
}
|
|
359
376
|
if (!this.#syncOrAsync) {
|
|
360
377
|
throw new Error(`ResolveOnce.once impossible: state=${this.#state.getResolveState()}`);
|
|
@@ -380,6 +397,17 @@ export class ResolveOnce {
|
|
|
380
397
|
}
|
|
381
398
|
return ret;
|
|
382
399
|
}
|
|
400
|
+
setResetAfter(ms) {
|
|
401
|
+
if (this.resetAfterTimer) {
|
|
402
|
+
clearTimeout(this.resetAfterTimer);
|
|
403
|
+
}
|
|
404
|
+
if (typeof ms === "number" && ms > 0) {
|
|
405
|
+
this.#opts.resetAfter = ms;
|
|
406
|
+
}
|
|
407
|
+
else {
|
|
408
|
+
this.#opts.resetAfter = undefined;
|
|
409
|
+
}
|
|
410
|
+
}
|
|
383
411
|
}
|
|
384
412
|
export class KeyedResolvOnce {
|
|
385
413
|
_keyed;
|
|
@@ -444,12 +472,12 @@ export class KeyedResolvOnce {
|
|
|
444
472
|
}
|
|
445
473
|
unget(key) {
|
|
446
474
|
const item = this._keyed.getItem(key);
|
|
447
|
-
item.value.reset?.();
|
|
475
|
+
void item.value.reset?.();
|
|
448
476
|
return this._keyed.delete(item.givenKey);
|
|
449
477
|
}
|
|
450
478
|
reset() {
|
|
451
479
|
for (const v of this._keyed.values()) {
|
|
452
|
-
v.value.reset?.();
|
|
480
|
+
void v.value.reset?.();
|
|
453
481
|
}
|
|
454
482
|
}
|
|
455
483
|
forEach(fn) {
|
package/esm/resolve-once.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-once.js","sourceRoot":"","sources":["../../../src/resolve-once.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resolve-once.js","sourceRoot":"","sources":["../../../src/resolve-once.ts"],"names":[],"mappings":"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"}
|
package/esm/resolve-once.test.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Result, KeyedResolvOnce, ResolveOnce, ResolveSeq, Lazy, Future, KeyedResolvSeq } from "@adviser/cement";
|
|
1
|
+
import { Result, KeyedResolvOnce, ResolveOnce, ResolveSeq, Lazy, Future, KeyedResolvSeq, runtimeFn, } from "@adviser/cement";
|
|
2
2
|
import { isPromise } from "./is-promise.js";
|
|
3
3
|
import { sleep } from "./promise-sleep.js";
|
|
4
4
|
describe("resolve-once", () => {
|
|
@@ -203,23 +203,23 @@ describe("resolve-once", () => {
|
|
|
203
203
|
keyed.get(() => "b").once(b_orderFn),
|
|
204
204
|
]);
|
|
205
205
|
expect(a_orderFn).toHaveBeenCalledTimes(1);
|
|
206
|
-
expect(a_orderFn).
|
|
206
|
+
expect(a_orderFn.mock.calls[0][0].ctx).toEqual({
|
|
207
207
|
refKey: "a",
|
|
208
208
|
givenKey: "a",
|
|
209
209
|
value: undefined,
|
|
210
210
|
ctx: {},
|
|
211
|
-
}
|
|
211
|
+
});
|
|
212
212
|
expect(b_orderFn).toHaveBeenCalledTimes(1);
|
|
213
|
-
expect(b_orderFn).
|
|
213
|
+
expect(b_orderFn.mock.calls[0][0].ctx).toEqual({
|
|
214
214
|
refKey: "b",
|
|
215
215
|
givenKey: "b",
|
|
216
216
|
value: undefined,
|
|
217
217
|
ctx: {},
|
|
218
|
-
}
|
|
218
|
+
});
|
|
219
219
|
});
|
|
220
220
|
it("keyedResolvOnce with pass ctx & {key: K}", () => {
|
|
221
221
|
const my = new KeyedResolvOnce({ ctx: { wurst: "world" } });
|
|
222
|
-
my.get(1).once((item) => {
|
|
222
|
+
my.get(1).once(({ ctx: item }) => {
|
|
223
223
|
assertType(item);
|
|
224
224
|
assertType(item);
|
|
225
225
|
assertType(item.givenKey);
|
|
@@ -246,20 +246,21 @@ describe("resolve-once", () => {
|
|
|
246
246
|
my.once(() => {
|
|
247
247
|
return { hello: "world" };
|
|
248
248
|
});
|
|
249
|
-
my.once((
|
|
250
|
-
return { hello:
|
|
249
|
+
my.once(({ ctx }) => {
|
|
250
|
+
return { hello: ctx.wurst };
|
|
251
251
|
});
|
|
252
252
|
});
|
|
253
253
|
it("keyedResolvOnce with pass decompose", () => {
|
|
254
254
|
const my = new KeyedResolvOnce();
|
|
255
|
-
my.get("1").once(({
|
|
255
|
+
my.get("1").once(({ ctx }) => {
|
|
256
|
+
const { refKey } = ctx;
|
|
256
257
|
assertType(refKey);
|
|
257
258
|
return { hello: "world" };
|
|
258
259
|
});
|
|
259
260
|
my.get("2").once(() => {
|
|
260
261
|
return { hello: "world" };
|
|
261
262
|
});
|
|
262
|
-
my.get("3").once((ctx) => {
|
|
263
|
+
my.get("3").once(({ ctx }) => {
|
|
263
264
|
assertType(ctx);
|
|
264
265
|
return { hello: "world" };
|
|
265
266
|
});
|
|
@@ -290,19 +291,19 @@ describe("resolve-once", () => {
|
|
|
290
291
|
.then((resolveOnce) => resolveOnce.once(b_orderFn)),
|
|
291
292
|
]);
|
|
292
293
|
expect(a_orderFn).toHaveBeenCalledTimes(1);
|
|
293
|
-
expect(a_orderFn).
|
|
294
|
+
expect(a_orderFn.mock.calls[0][0].ctx).toEqual({
|
|
294
295
|
ctx: {},
|
|
295
296
|
givenKey: "a",
|
|
296
297
|
refKey: "a",
|
|
297
298
|
value: undefined,
|
|
298
|
-
}
|
|
299
|
+
});
|
|
299
300
|
expect(b_orderFn).toHaveBeenCalledTimes(1);
|
|
300
|
-
expect(b_orderFn).
|
|
301
|
+
expect(b_orderFn.mock.calls[0][0].ctx).toEqual({
|
|
301
302
|
ctx: {},
|
|
302
303
|
givenKey: "b",
|
|
303
304
|
refKey: "b",
|
|
304
305
|
value: undefined,
|
|
305
|
-
}
|
|
306
|
+
});
|
|
306
307
|
});
|
|
307
308
|
function shuffle(array) {
|
|
308
309
|
let currentIndex = array.length;
|
|
@@ -818,10 +819,12 @@ describe("KeyToHash", () => {
|
|
|
818
819
|
key2string: (key) => `${key.id}:${key.name}`,
|
|
819
820
|
ctx: { ctx: "test" },
|
|
820
821
|
});
|
|
821
|
-
const onceFn = vi
|
|
822
|
+
const onceFn = vi
|
|
823
|
+
.fn()
|
|
824
|
+
.mockImplementation(({ ctx }) => {
|
|
822
825
|
return {
|
|
823
|
-
id:
|
|
824
|
-
name:
|
|
826
|
+
id: ctx.givenKey.id,
|
|
827
|
+
name: ctx.givenKey.name,
|
|
825
828
|
};
|
|
826
829
|
});
|
|
827
830
|
for (let i = 0; i < 3; i++) {
|
|
@@ -831,7 +834,7 @@ describe("KeyToHash", () => {
|
|
|
831
834
|
expect(res).toEqual({ id: 1, name: "test" });
|
|
832
835
|
}
|
|
833
836
|
expect(onceFn).toHaveBeenCalledTimes(1);
|
|
834
|
-
expect(onceFn).
|
|
837
|
+
expect(onceFn.mock.calls[0][0].ctx).toEqual({
|
|
835
838
|
refKey: "1:test",
|
|
836
839
|
givenKey: { id: 1, name: "test" },
|
|
837
840
|
value: undefined,
|
|
@@ -845,32 +848,74 @@ it("ResolveOnce gets is prev value if reset", () => {
|
|
|
845
848
|
value: 42,
|
|
846
849
|
stats: 1,
|
|
847
850
|
}));
|
|
848
|
-
once.reset();
|
|
849
|
-
const res1 = once.once((
|
|
850
|
-
if (!
|
|
851
|
+
void once.reset();
|
|
852
|
+
const res1 = once.once((my) => {
|
|
853
|
+
if (!my.self.value) {
|
|
851
854
|
throw new Error("prev is undefined");
|
|
852
855
|
}
|
|
853
856
|
return {
|
|
854
857
|
value: 45,
|
|
855
|
-
stats:
|
|
858
|
+
stats: my.self.value.stats + 1,
|
|
856
859
|
};
|
|
857
860
|
});
|
|
858
861
|
expect(res1).toEqual({
|
|
859
862
|
value: 45,
|
|
860
863
|
stats: 2,
|
|
861
864
|
});
|
|
862
|
-
once.reset();
|
|
863
|
-
const res2 = once.once((
|
|
864
|
-
if (!
|
|
865
|
+
void once.reset();
|
|
866
|
+
const res2 = once.once((my) => {
|
|
867
|
+
if (!my.self.value) {
|
|
865
868
|
throw new Error("prev is undefined");
|
|
866
869
|
}
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
return
|
|
870
|
+
my.self.value.stats++;
|
|
871
|
+
my.self.value.value += 3;
|
|
872
|
+
return my.self.value;
|
|
870
873
|
});
|
|
871
874
|
expect(res2).toEqual({
|
|
872
875
|
value: 48,
|
|
873
876
|
stats: 3,
|
|
874
877
|
});
|
|
875
878
|
});
|
|
879
|
+
it("dynamic setting of resetAfter switch off", async () => {
|
|
880
|
+
const once = new ResolveOnce(undefined, { resetAfter: 30 });
|
|
881
|
+
once.once((my) => {
|
|
882
|
+
my.self.setResetAfter();
|
|
883
|
+
return 42;
|
|
884
|
+
});
|
|
885
|
+
await sleep(40);
|
|
886
|
+
expect(once.once(() => 43)).toBe(42);
|
|
887
|
+
});
|
|
888
|
+
it("dynamic setting of resetAfter change time", async () => {
|
|
889
|
+
const once = new ResolveOnce(undefined, { resetAfter: 30 });
|
|
890
|
+
once.once((my) => {
|
|
891
|
+
my.self.setResetAfter(10);
|
|
892
|
+
return 42;
|
|
893
|
+
});
|
|
894
|
+
await sleep(15);
|
|
895
|
+
expect(once.once(() => 43)).toBe(43);
|
|
896
|
+
await sleep(15);
|
|
897
|
+
expect(once.once(() => 44)).toBe(44);
|
|
898
|
+
});
|
|
899
|
+
it("does not block node on process exit", async () => {
|
|
900
|
+
let runtime = undefined;
|
|
901
|
+
if (runtimeFn().isNodeIsh) {
|
|
902
|
+
runtime = ["tsx", "-e"];
|
|
903
|
+
}
|
|
904
|
+
if (runtimeFn().isDeno) {
|
|
905
|
+
runtime = ["deno", "eval"];
|
|
906
|
+
}
|
|
907
|
+
if (runtime) {
|
|
908
|
+
const { $ } = await import("zx");
|
|
909
|
+
const start = Date.now();
|
|
910
|
+
const code = [
|
|
911
|
+
"import { ResolveOnce } from './src/resolve-once.ts';",
|
|
912
|
+
`(new ResolveOnce(undefined, { resetAfter: 100000 }).once(() => Promise.resolve("done")))`,
|
|
913
|
+
`.finally(() => console.log("done"));`,
|
|
914
|
+
].join("");
|
|
915
|
+
const res = await $ `${runtime} ${[code]}`;
|
|
916
|
+
expect(res.ok).toBe(true);
|
|
917
|
+
const duration = Date.now() - start;
|
|
918
|
+
expect(duration).toBeLessThan(1000);
|
|
919
|
+
}
|
|
920
|
+
});
|
|
876
921
|
//# sourceMappingURL=resolve-once.test.js.map
|