@adviser/cement 0.4.65 → 0.4.67

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.
@@ -55,10 +55,15 @@ export class ResolveSeq {
55
55
  }
56
56
  }
57
57
  export class SyncResolveOnce {
58
- state = "initial";
59
58
  #value;
60
59
  #error;
61
60
  queueLength = 0;
61
+ #state;
62
+ #rOnce;
63
+ constructor(rOnce, state) {
64
+ this.#state = state;
65
+ this.#rOnce = rOnce;
66
+ }
62
67
  get value() {
63
68
  return this.#value;
64
69
  }
@@ -66,22 +71,21 @@ export class SyncResolveOnce {
66
71
  return this.#error;
67
72
  }
68
73
  get ready() {
69
- return this.state === "processed";
70
- }
71
- #ctx;
72
- constructor(ctx) {
73
- this.#ctx = ctx;
74
+ return this.#state.isProcessed();
74
75
  }
75
76
  resolve(fn) {
76
- if (this.state === "initial") {
77
- this.state = "processed";
77
+ if (this.#state.isProcessing()) {
78
78
  try {
79
- this.#value = fn(this.#ctx);
79
+ this.#value = fn(this.#rOnce._ctx);
80
80
  }
81
81
  catch (e) {
82
82
  this.#error = e;
83
83
  }
84
- if (isPromise(this.value)) {
84
+ finally {
85
+ this.#state.setProcessed();
86
+ this.#rOnce.setProcessed(this.#state);
87
+ }
88
+ if (isPromise(this.#value)) {
85
89
  throw new Error("SyncResolveOnce.once fn returned a promise");
86
90
  }
87
91
  }
@@ -91,10 +95,10 @@ export class SyncResolveOnce {
91
95
  return this.#value;
92
96
  }
93
97
  reset(fn) {
94
- this.state = "initial";
95
98
  this.#value = undefined;
96
99
  this.#error = undefined;
97
100
  if (fn) {
101
+ this.#state.setProcessing();
98
102
  return this.resolve(fn);
99
103
  }
100
104
  return undefined;
@@ -102,12 +106,15 @@ export class SyncResolveOnce {
102
106
  }
103
107
  class AsyncResolveItem {
104
108
  id = Math.random();
105
- #state = "initial";
106
109
  #toResolve;
107
110
  #value = Option.None();
108
111
  #error;
109
- constructor(fn) {
112
+ #state;
113
+ #rOnce;
114
+ constructor(fn, rOnce, state) {
110
115
  this.#toResolve = fn;
116
+ this.#state = state;
117
+ this.#rOnce = rOnce;
111
118
  }
112
119
  get value() {
113
120
  return this.#value.IsSome() ? this.#value.unwrap() : undefined;
@@ -120,7 +127,7 @@ class AsyncResolveItem {
120
127
  return this.#queue.length;
121
128
  }
122
129
  isDisposable() {
123
- return this.#state === "processed" && this.#queue.length === 0;
130
+ return this.#state.isProcessed() && this.#queue.length === 0;
124
131
  }
125
132
  #resolveFuture(future) {
126
133
  if (!future) {
@@ -141,11 +148,10 @@ class AsyncResolveItem {
141
148
  if (this.#value.IsSome()) {
142
149
  return Promise.resolve(this.#value.Unwrap());
143
150
  }
144
- throw new Error("AsyncResolveItem.#promiseResult impossible");
151
+ throw new Error(`AsyncResolveItem.#promiseResult impossible: ${this.#state.getResolveState()}`);
145
152
  }
146
153
  resolve() {
147
- if (this.#state === "initial") {
148
- this.#state = "waiting";
154
+ if (this.#state.isWaiting()) {
149
155
  const future = new Future();
150
156
  this.#queue.push(future);
151
157
  this.#toResolve
@@ -156,30 +162,36 @@ class AsyncResolveItem {
156
162
  this.#error = e;
157
163
  })
158
164
  .finally(() => {
159
- this.#state = "processed";
165
+ this.#state.setProcessed();
166
+ this.#rOnce.setProcessed(this.#state);
160
167
  while (this.#queue.length > 0) {
161
168
  this.#resolveFuture(this.#queue.shift());
162
169
  }
163
170
  });
164
171
  return future.asPromise();
165
172
  }
166
- if (this.#state === "processed") {
173
+ if (this.#state.isProcessed()) {
167
174
  return this.#promiseResult();
168
175
  }
169
- if (this.#state === "waiting") {
170
- const future = new Future();
171
- this.#queue.push(future);
172
- return future.asPromise();
173
- }
174
- throw new Error("AsyncResolveItem.resolve impossible");
176
+ throw new Error(`AsyncResolveItem.resolve impossible: ${this.#state.getResolveState()}`);
175
177
  }
176
178
  }
179
+ function isAsyncResolveOnce(obj) {
180
+ return obj.IsSome() && obj.Unwrap() instanceof AsyncResolveOnce;
181
+ }
177
182
  export class AsyncResolveOnce {
178
- state = "initial";
179
- #queue = [];
180
- #ctx;
181
- constructor(ctx) {
182
- this.#ctx = ctx;
183
+ #state;
184
+ #queue;
185
+ #rOnce;
186
+ constructor(rOnce, state, prev) {
187
+ this.#state = state;
188
+ this.#rOnce = rOnce;
189
+ if (isAsyncResolveOnce(prev)) {
190
+ this.#queue = [...prev.unwrap().#queue];
191
+ }
192
+ else {
193
+ this.#queue = [];
194
+ }
183
195
  }
184
196
  #active() {
185
197
  const r = this.#queue[this.#queue.length - 1];
@@ -191,27 +203,24 @@ export class AsyncResolveOnce {
191
203
  get queueLength() {
192
204
  return this.#queue.reduce((acc, r) => acc + r.queuelength, this.#queue.length);
193
205
  }
194
- get ready() {
195
- return this.state !== "initial";
196
- }
197
206
  get value() {
198
- if (this.state === "initial") {
207
+ if (this.#state.isInitial()) {
199
208
  return undefined;
200
209
  }
201
210
  return this.#active().value;
202
211
  }
203
212
  get error() {
204
- if (this.state === "initial") {
213
+ if (this.#state.isInitial()) {
205
214
  return undefined;
206
215
  }
207
216
  return this.#active().error;
208
217
  }
209
218
  resolve(fn) {
210
- if (this.state === "initial") {
211
- this.state = "waiting";
219
+ if (this.#state.isProcessing()) {
220
+ this.#state.setWaiting();
212
221
  let promiseResult;
213
222
  try {
214
- const couldBePromise = fn(this.#ctx);
223
+ const couldBePromise = fn(this.#rOnce._ctx);
215
224
  if (!isPromise(couldBePromise)) {
216
225
  promiseResult = Promise.resolve(couldBePromise);
217
226
  }
@@ -222,7 +231,7 @@ export class AsyncResolveOnce {
222
231
  catch (e) {
223
232
  promiseResult = Promise.reject(e);
224
233
  }
225
- this.#queue.push(new AsyncResolveItem(promiseResult));
234
+ this.#queue.push(new AsyncResolveItem(promiseResult, this.#rOnce, this.#state));
226
235
  }
227
236
  this.#queue
228
237
  .slice(0, -1)
@@ -233,92 +242,139 @@ export class AsyncResolveOnce {
233
242
  return this.#active().resolve();
234
243
  }
235
244
  reset(fn) {
236
- this.state = "initial";
245
+ this.#state.setProcessing();
237
246
  if (fn) {
238
247
  return this.resolve(fn);
239
248
  }
240
249
  return undefined;
241
250
  }
242
251
  }
243
- export class ResolveOnce {
252
+ class StateInstance {
253
+ id = Math.random();
244
254
  #state = "initial";
255
+ getResolveState() {
256
+ return this.#state;
257
+ }
258
+ isInitial() {
259
+ return this.#state === "initial";
260
+ }
261
+ isProcessed() {
262
+ return this.#state === "processed";
263
+ }
264
+ setProcessed() {
265
+ this.#state = "processed";
266
+ }
267
+ isProcessing() {
268
+ return this.#state === "processing";
269
+ }
270
+ setProcessing() {
271
+ this.#state = "processing";
272
+ }
273
+ isWaiting() {
274
+ return this.#state === "waiting";
275
+ }
276
+ setWaiting() {
277
+ this.#state = "waiting";
278
+ }
279
+ equals(other) {
280
+ return this.id === other.id;
281
+ }
282
+ }
283
+ export class ResolveOnce {
284
+ #state = new StateInstance();
245
285
  #syncOrAsync = Option.None();
246
- #ctx;
247
- constructor(ctx) {
248
- this.#ctx = ctx;
286
+ #opts;
287
+ resetAfterTimer;
288
+ _ctx;
289
+ constructor(ctx, opts) {
290
+ this._ctx = ctx;
291
+ this.#opts = opts ?? {};
292
+ }
293
+ get state() {
294
+ return this.#state.getResolveState();
295
+ }
296
+ setProcessed(state) {
297
+ if (this.resetAfterTimer) {
298
+ clearTimeout(this.resetAfterTimer);
299
+ }
300
+ if (this.#state.equals(state)) {
301
+ this.#state.setProcessed();
302
+ if (typeof this.#opts.resetAfter === "number" && this.#opts.resetAfter > 0) {
303
+ this.resetAfterTimer = setTimeout(() => {
304
+ this.reset();
305
+ }, this.#opts.resetAfter);
306
+ }
307
+ }
249
308
  }
250
309
  get ready() {
251
- return this.#state !== "initial" && this.#syncOrAsync.Unwrap().ready;
310
+ return !this.#state.isInitial();
252
311
  }
253
312
  get value() {
254
- if (this.#state === "initial") {
313
+ if (this.#state.isInitial()) {
255
314
  return undefined;
256
315
  }
257
316
  return this.#syncOrAsync.Unwrap().value;
258
317
  }
259
318
  get queueLength() {
260
- if (this.#state === "initial") {
319
+ if (this.#state.isInitial()) {
261
320
  return 0;
262
321
  }
263
322
  return this.#syncOrAsync.Unwrap().queueLength;
264
323
  }
265
324
  get error() {
266
- if (this.#state === "initial") {
325
+ if (this.#state.isInitial()) {
267
326
  return undefined;
268
327
  }
269
328
  return this.#syncOrAsync.Unwrap().error;
270
329
  }
271
- get state() {
272
- if (this.#state === "initial") {
273
- return "initial";
274
- }
275
- return this.#syncOrAsync.Unwrap().state;
276
- }
277
330
  once(fn) {
278
331
  let resultFn;
279
- if (this.#state === "initial") {
280
- this.#state = "processing";
332
+ if (this.#state.isInitial()) {
333
+ const state = this.#state;
281
334
  try {
282
- const isSyncOrAsync = fn(this.#ctx ?? {});
335
+ state.setProcessing();
336
+ const isSyncOrAsync = fn(this._ctx ?? {});
283
337
  if (isPromise(isSyncOrAsync)) {
284
- this.#syncOrAsync = Option.Some(new AsyncResolveOnce(this.#ctx));
338
+ this.#syncOrAsync = Option.Some(new AsyncResolveOnce(this, state, this.#syncOrAsync));
285
339
  }
286
340
  else {
287
- this.#syncOrAsync = Option.Some(new SyncResolveOnce(this.#ctx));
341
+ this.#syncOrAsync = Option.Some(new SyncResolveOnce(this, state));
288
342
  }
289
343
  resultFn = () => isSyncOrAsync;
290
344
  }
291
345
  catch (e) {
292
- this.#syncOrAsync = Option.Some(new SyncResolveOnce(this.#ctx));
346
+ this.#syncOrAsync = Option.Some(new SyncResolveOnce(this, state));
293
347
  resultFn = () => {
294
348
  throw e;
295
349
  };
296
350
  }
297
- finally {
298
- this.#state = "processed";
299
- }
300
351
  }
301
352
  else {
302
353
  resultFn = fn;
303
354
  }
304
355
  if (!this.#syncOrAsync) {
305
- throw new Error("ResolveOnce.once impossible");
356
+ throw new Error(`ResolveOnce.once impossible: state=${this.#state.getResolveState()}`);
306
357
  }
307
358
  return this.#syncOrAsync.Unwrap().resolve(resultFn);
308
359
  }
309
360
  reset(fn) {
310
- if (this.#state === "initial") {
361
+ if (this.#state.isInitial()) {
311
362
  if (!fn) {
312
- console.warn("ResolveOnce.reset called but not yet resolved and no fn given");
313
363
  return undefined;
314
364
  }
315
365
  return this.once(fn);
316
366
  }
317
- if (this.#state === "processing") {
367
+ if (this.#state.isProcessing()) {
318
368
  console.warn("ResolveOnce.reset dropped was called while processing");
319
369
  return undefined;
320
370
  }
321
- return this.#syncOrAsync.Unwrap().reset(fn);
371
+ let ret = undefined;
372
+ this.#state = new StateInstance();
373
+ if (fn) {
374
+ ret = this.once(fn);
375
+ // ret = this.#syncOrAsync.Unwrap().reset(fn as (c?: CTX) => never) as ResultOnce<R>
376
+ }
377
+ return ret;
322
378
  }
323
379
  }
324
380
  export class KeyedResolvOnce {
@@ -437,13 +493,16 @@ export class KeyedResolvSeq extends KeyedNg {
437
493
  }
438
494
  }
439
495
  class LazyContainer {
440
- resolveOnce = new ResolveOnce();
496
+ resolveOnce;
497
+ constructor(opts) {
498
+ this.resolveOnce = new ResolveOnce(undefined, opts);
499
+ }
441
500
  call(fn) {
442
501
  return (...args) => this.resolveOnce.once(() => fn(...args));
443
502
  }
444
503
  }
445
- export function Lazy(fn) {
446
- const lazy = new LazyContainer();
504
+ export function Lazy(fn, opts) {
505
+ const lazy = new LazyContainer(opts);
447
506
  return lazy.call(fn);
448
507
  }
449
508
  //# sourceMappingURL=resolve-once.js.map
@@ -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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"}
@@ -1,5 +1,6 @@
1
1
  import { Result, KeyedResolvOnce, ResolveOnce, ResolveSeq, Lazy, Future, KeyedResolvSeq } from "@adviser/cement";
2
2
  import { isPromise } from "./is-promise.js";
3
+ import { sleep } from "./promise-sleep.js";
3
4
  describe("resolve-once", () => {
4
5
  it("sequence", async () => {
5
6
  const once = new ResolveOnce();
@@ -39,7 +40,7 @@ describe("resolve-once", () => {
39
40
  .map((fn) => fn()))).toEqual(Array(100).fill(42));
40
41
  expect(reallyOnce).toHaveBeenCalledTimes(1);
41
42
  const diff = performance.now() - start;
42
- expect(diff).toBeGreaterThanOrEqual(99);
43
+ expect(diff).toBeGreaterThanOrEqual(95);
43
44
  expect(diff).toBeLessThan(150);
44
45
  });
45
46
  it("async works with void", async () => {
@@ -126,7 +127,7 @@ describe("resolve-once", () => {
126
127
  .map((_, i) => `${i}:42`));
127
128
  expect(reallyOnce).toHaveBeenCalledTimes(1);
128
129
  const diff = performance.now() - start;
129
- expect(diff).toBeGreaterThanOrEqual(99);
130
+ expect(diff).toBeGreaterThanOrEqual(95);
130
131
  expect(diff).toBeLessThan(150);
131
132
  });
132
133
  it("preserves call order to resolv order", async () => {
@@ -726,6 +727,36 @@ describe("Lazy Initialization", () => {
726
727
  expect(await my.action()).toEqual({ sync: 43, async: 44, asyncPass: 46, passIn: 42 });
727
728
  expect(await my.action()).toEqual({ sync: 43, async: 44, asyncPass: 46, passIn: 42 });
728
729
  });
730
+ it("Sync Lazy With Renew Timer", async () => {
731
+ let initVal = 0;
732
+ const lazy = Lazy(() => {
733
+ return ++initVal;
734
+ }, { resetAfter: 50 });
735
+ expect(lazy()).toBe(1);
736
+ await sleep(10);
737
+ expect(lazy()).toBe(1);
738
+ await sleep(60);
739
+ expect(lazy()).toBe(2);
740
+ expect(lazy()).toBe(2);
741
+ await sleep(60);
742
+ expect(lazy()).toBe(3);
743
+ expect(lazy()).toBe(3);
744
+ });
745
+ it("Async Lazy With Renew Timer", async () => {
746
+ let initVal = 0;
747
+ const lazy = Lazy(() => {
748
+ return Promise.resolve(++initVal);
749
+ }, { resetAfter: 50 });
750
+ expect(await lazy()).toBe(1);
751
+ await sleep(10);
752
+ expect(await lazy()).toBe(1);
753
+ await sleep(60);
754
+ expect(await lazy()).toBe(2);
755
+ expect(await lazy()).toBe(2);
756
+ await sleep(60);
757
+ expect(await lazy()).toBe(3);
758
+ expect(await lazy()).toBe(3);
759
+ });
729
760
  });
730
761
  describe("KeyToHash", () => {
731
762
  it("KeyedResolvSeq could use default KeyToHash", async () => {