@zajno/common 2.3.5 → 2.3.7

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.
@@ -1,8 +1,9 @@
1
1
  export declare function setTimeoutAsync(ms: number, useCancel?: null | ((cb: () => void) => void)): Promise<void>;
2
- export declare function setTimeoutFramesAsync(frames: number): Promise<void>;
3
2
  export declare function timeoutPromise<T>(p: Promise<T>, timeoutMs: number, waitForMinElapsed?: number): Promise<{
4
3
  resolved: T | undefined;
5
4
  timedOut?: boolean;
6
5
  elapsed: number;
7
6
  }>;
7
+ /** @deprecated Not Supported! Moved to `@zajno/common-web` package due to dependency on DOM's `requestAnimationFrame` */
8
+ export declare function setTimeoutFramesAsync(): void;
8
9
  //# sourceMappingURL=timeout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"timeout.d.ts","sourceRoot":"","sources":["../../src/async/timeout.ts"],"names":[],"mappings":"AACA,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,GAAE,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,CAAO,iBA0B7F;AAID,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,iBAkBnD;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAgCzK"}
1
+ {"version":3,"file":"timeout.d.ts","sourceRoot":"","sources":["../../src/async/timeout.ts"],"names":[],"mappings":"AACA,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,GAAE,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,CAAO,iBA0B7F;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAgCzK;AAED,yHAAyH;AACzH,wBAAgB,qBAAqB,SAEpC"}
package/async/timeout.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.timeoutPromise = exports.setTimeoutFramesAsync = exports.setTimeoutAsync = void 0;
3
+ exports.setTimeoutFramesAsync = exports.timeoutPromise = exports.setTimeoutAsync = void 0;
4
4
  function setTimeoutAsync(ms, useCancel = null) {
5
5
  let canceled = false;
6
6
  let _reject;
@@ -27,25 +27,6 @@ function setTimeoutAsync(ms, useCancel = null) {
27
27
  return res;
28
28
  }
29
29
  exports.setTimeoutAsync = setTimeoutAsync;
30
- /* global requestAnimationFrame */
31
- function setTimeoutFramesAsync(frames) {
32
- if (typeof requestAnimationFrame === 'undefined') {
33
- throw new Error('setTimeoutFramesAsync is not supported because "requestAnimationFrame" is not defined.');
34
- }
35
- return new Promise(resolve => {
36
- let left = frames || 0;
37
- const cb = () => {
38
- if (--left <= 0) {
39
- resolve();
40
- }
41
- else {
42
- requestAnimationFrame(cb);
43
- }
44
- };
45
- cb();
46
- });
47
- }
48
- exports.setTimeoutFramesAsync = setTimeoutFramesAsync;
49
30
  function timeoutPromise(p, timeoutMs, waitForMinElapsed) {
50
31
  const started = Date.now();
51
32
  return new Promise((resolve, reject) => {
@@ -75,4 +56,9 @@ function timeoutPromise(p, timeoutMs, waitForMinElapsed) {
75
56
  });
76
57
  }
77
58
  exports.timeoutPromise = timeoutPromise;
59
+ /** @deprecated Not Supported! Moved to `@zajno/common-web` package due to dependency on DOM's `requestAnimationFrame` */
60
+ function setTimeoutFramesAsync() {
61
+ throw new Error('setTimeoutFramesAsync has been moved to "@zajno/common-web" because it depends on "window.requestAnimationFrame".');
62
+ }
63
+ exports.setTimeoutFramesAsync = setTimeoutFramesAsync;
78
64
  //# sourceMappingURL=timeout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timeout.js","sourceRoot":"","sources":["../../src/async/timeout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"timeout.js","sourceRoot":"","sources":["../../src/async/timeout.ts"],"names":[],"mappings":";;;AACA,SAAgB,eAAe,CAAC,EAAU,EAAE,YAA8C,IAAI;IAC1F,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,OAA4B,CAAC;IACjC,IAAI,KAAoC,CAAC;IACzC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC9C,OAAO,GAAG,MAAM,CAAC;QACjB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,OAAO,EAAE,CAAC;YACd,CAAC;QACL,CAAC,EAAE,EAAE,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,IAAI,SAAS,EAAE,CAAC;QACZ,MAAM,QAAQ,GAAG,GAAG,EAAE;YAClB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;YACd,CAAC;QACL,CAAC,CAAC;QACF,SAAS,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC;AA1BD,0CA0BC;AAED,SAAgB,cAAc,CAAI,CAAa,EAAE,SAAiB,EAAE,iBAA0B;IAC1F,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE3B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,MAAM,GAAG,CAAC,GAAkB,EAAE,QAAiB,EAAE,EAAE;YACrD,IAAI,QAAQ,EAAE,CAAC;gBACX,OAAO;YACX,CAAC;YAED,QAAQ,GAAG,IAAI,CAAC;YAEhB,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC;YAChD,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;YAE7F,MAAM,IAAI,GAAG,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjF,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;gBACZ,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACJ,QAAQ,EAAE,CAAC;YACf,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;YAC/B,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACT,YAAY,CAAC,UAAU,CAAC,CAAC;YACzB,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;AACP,CAAC;AAhCD,wCAgCC;AAED,yHAAyH;AACzH,SAAgB,qBAAqB;IACjC,MAAM,IAAI,KAAK,CAAC,mHAAmH,CAAC,CAAC;AACzI,CAAC;AAFD,sDAEC"}
@@ -1,6 +1,7 @@
1
1
  export interface IDisposable {
2
2
  dispose(): void;
3
3
  }
4
+ export type ISymbolDisposable = globalThis.Disposable & IDisposable;
4
5
  export interface DisposeFunction {
5
6
  (): void;
6
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"disposer.d.ts","sourceRoot":"","sources":["../../src/functions/disposer.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IACxB,OAAO,IAAI,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,IAAI,CAAC;CACZ;AAED,qBAAa,QAAQ;IAEjB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsC;IAE3D,OAAO,CAAC,WAAW,CAAuB;gBAE9B,UAAU,GAAE,MAAM,GAAG,IAAW;IAIrC,aAAa,CAAC,UAAU,EAAE,MAAM;IAKhC,GAAG,CAAC,CAAC,EAAE,eAAe,GAAG,WAAW,EAAE,EAAE,CAAC,EAAE,MAAM;IAqBjD,OAAO,CAAC,EAAE,EAAE,MAAM;IAelB,OAAO,CAAC,GAAG,UAAQ;CAe7B;AAED,wBAAgB,gBAAgB,CAAC,GAAG,KAAK,EAAE,eAAe,EAAE,GAAG,eAAe,CAE7E;AAED,qBAAa,UAAW,YAAW,WAAW;IAE1C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACtC,SAAS,CAAC,WAAW,UAAS;gBAElB,UAAU,GAAE,MAAM,GAAG,IAAW;IAIrC,OAAO,aAGZ;CACL"}
1
+ {"version":3,"file":"disposer.d.ts","sourceRoot":"","sources":["../../src/functions/disposer.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IACxB,OAAO,IAAI,IAAI,CAAC;CACnB;AAED,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC5B,IAAI,IAAI,CAAC;CACZ;AAED,qBAAa,QAAQ;IAEjB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsC;IAE3D,OAAO,CAAC,WAAW,CAAuB;gBAE9B,UAAU,GAAE,MAAM,GAAG,IAAW;IAIrC,aAAa,CAAC,UAAU,EAAE,MAAM;IAKhC,GAAG,CAAC,CAAC,EAAE,eAAe,GAAG,WAAW,EAAE,EAAE,CAAC,EAAE,MAAM;IAqBjD,OAAO,CAAC,EAAE,EAAE,MAAM;IAelB,OAAO,CAAC,GAAG,UAAQ;CAe7B;AAED,wBAAgB,gBAAgB,CAAC,GAAG,KAAK,EAAE,eAAe,EAAE,GAAG,eAAe,CAE7E;AAED,qBAAa,UAAW,YAAW,WAAW;IAE1C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACtC,SAAS,CAAC,WAAW,UAAS;gBAElB,UAAU,GAAE,MAAM,GAAG,IAAW;IAIrC,OAAO,aAGZ;CACL"}
@@ -1 +1 @@
1
- {"version":3,"file":"disposer.js","sourceRoot":"","sources":["../../src/functions/disposer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"disposer.js","sourceRoot":"","sources":["../../src/functions/disposer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { IDisposable } from './disposer';
2
+ export declare abstract class SymbolDisposable implements globalThis.Disposable, IDisposable {
3
+ [Symbol.dispose]: () => void;
4
+ abstract dispose(): void;
5
+ }
6
+ export declare function makeSymbolDisposable<T extends IDisposable>(obj: T): T & SymbolDisposable;
7
+ //# sourceMappingURL=disposer.symbols.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disposer.symbols.d.ts","sourceRoot":"","sources":["../../src/functions/disposer.symbols.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAe9C,8BAAsB,gBAAiB,YAAW,UAAU,CAAC,UAAU,EAAE,WAAW;IAEhF,CAAC,MAAM,CAAC,OAAO,CAAC,aAAwB;IAExC,QAAQ,CAAC,OAAO,IAAI,IAAI;CAC3B;AAGD,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAcxF"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeSymbolDisposable = exports.SymbolDisposable = void 0;
4
+ // Symbol.dispose ??= Symbol('Symbol.dispose');
5
+ if (!('dispose' in Symbol)) {
6
+ // @ts-expect-error polyfill for Symbol.dispose
7
+ Symbol.dispose = Symbol('Symbol.dispose');
8
+ }
9
+ // Symbol.asyncDispose ??= Symbol('Symbol.asyncDispose');
10
+ if (!('asyncDispose' in Symbol)) {
11
+ // @ts-expect-error polyfill for Symbol.asyncDispose
12
+ Symbol.asyncDispose = Symbol('Symbol.asyncDispose');
13
+ }
14
+ // for demonstration purposes, but use as base class if needed
15
+ class SymbolDisposable {
16
+ [Symbol.dispose] = () => this.dispose();
17
+ }
18
+ exports.SymbolDisposable = SymbolDisposable;
19
+ function makeSymbolDisposable(obj) {
20
+ const fn = () => obj.dispose();
21
+ Object.defineProperty(obj, Symbol.dispose, {
22
+ get() {
23
+ return fn;
24
+ },
25
+ });
26
+ return obj;
27
+ }
28
+ exports.makeSymbolDisposable = makeSymbolDisposable;
29
+ //# sourceMappingURL=disposer.symbols.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disposer.symbols.js","sourceRoot":"","sources":["../../src/functions/disposer.symbols.ts"],"names":[],"mappings":";;;AAEA,+CAA+C;AAC/C,IAAI,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,CAAC;IACzB,+CAA+C;IAC/C,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAC9C,CAAC;AAED,yDAAyD;AACzD,IAAI,CAAC,CAAC,cAAc,IAAI,MAAM,CAAC,EAAE,CAAC;IAC9B,oDAAoD;IACpD,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACxD,CAAC;AAED,8DAA8D;AAC9D,MAAsB,gBAAgB;IAElC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;CAG3C;AALD,4CAKC;AAGD,SAAgB,oBAAoB,CAAwB,GAAM;IAC9D,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAE/B,MAAM,CAAC,cAAc,CACjB,GAAG,EACH,MAAM,CAAC,OAAO,EACd;QACI,GAAG;YACC,OAAO,EAAE,CAAC;QACd,CAAC;KACJ,CACJ,CAAC;IAEF,OAAO,GAA2B,CAAC;AACvC,CAAC;AAdD,oDAcC"}
package/models/Model.d.ts CHANGED
@@ -7,7 +7,7 @@ export declare class Model<T> implements IValueModel<Nullable<T>> {
7
7
  constructor(v?: Getter<Nullable<T>>);
8
8
  get value(): T;
9
9
  set value(v: T);
10
- readonly setValue: (value: Nullable<T>) => void;
10
+ readonly setValue: (value: Getter<Nullable<T>>) => void;
11
11
  readonly reset: () => void;
12
12
  }
13
13
  //# sourceMappingURL=Model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../src/models/Model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,qBAAa,KAAK,CAAC,CAAC,CAAE,YAAW,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,MAAM,CAAc;IAE5B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;gBAExC,CAAC,GAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAQ;IAKzC,IAAW,KAAK,IACI,CAAC,CADsB;IAC3C,IAAW,KAAK,CAAC,CAAC,EAAE,CAAC,EAEpB;IAED,SAAgB,QAAQ,UAAW,SAAS,CAAC,CAAC,UAE5C;IAEF,SAAgB,KAAK,aAEnB;CACL"}
1
+ {"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../src/models/Model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,qBAAa,KAAK,CAAC,CAAC,CAAE,YAAW,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;gBAExC,CAAC,GAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAQ;IAKzC,IAAW,KAAK,IACI,CAAC,CADuC;IAC5D,IAAW,KAAK,CAAC,CAAC,EAAE,CAAC,EAEpB;IAED,SAAgB,QAAQ,UAAW,OAAO,SAAS,CAAC,CAAC,CAAC,UAEpD;IAEF,SAAgB,KAAK,aAEnB;CACL"}
package/models/Model.js CHANGED
@@ -6,10 +6,10 @@ class Model {
6
6
  _value;
7
7
  _defaultValue;
8
8
  constructor(v = null) {
9
- this._value = getter_1.Getter.getValue(v);
9
+ this._value = v;
10
10
  this._defaultValue = v;
11
11
  }
12
- get value() { return this._value; }
12
+ get value() { return getter_1.Getter.getValue(this._value); }
13
13
  set value(v) {
14
14
  this.setValue(v);
15
15
  }
@@ -17,7 +17,7 @@ class Model {
17
17
  this._value = value;
18
18
  };
19
19
  reset = () => {
20
- this.setValue(getter_1.Getter.getValue(this._defaultValue));
20
+ this.setValue(this._defaultValue);
21
21
  };
22
22
  }
23
23
  exports.Model = Model;
@@ -1 +1 @@
1
- {"version":3,"file":"Model.js","sourceRoot":"","sources":["../../src/models/Model.ts"],"names":[],"mappings":";;;AACA,4CAAyC;AAGzC,MAAa,KAAK;IACN,MAAM,CAAc;IAEX,aAAa,CAAsB;IAEpD,YAAY,IAAyB,IAAI;QACrC,IAAI,CAAC,MAAM,GAAG,eAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,IAAW,KAAK,KAAK,OAAO,IAAI,CAAC,MAAO,CAAC,CAAC,CAAC;IAC3C,IAAW,KAAK,CAAC,CAAI;QACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAEe,QAAQ,GAAG,CAAC,KAAkB,EAAE,EAAE;QAC9C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC,CAAC;IAEc,KAAK,GAAG,GAAG,EAAE;QACzB,IAAI,CAAC,QAAQ,CAAC,eAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC;CACL;AAtBD,sBAsBC"}
1
+ {"version":3,"file":"Model.js","sourceRoot":"","sources":["../../src/models/Model.ts"],"names":[],"mappings":";;;AACA,4CAAyC;AAGzC,MAAa,KAAK;IACN,MAAM,CAAsB;IAEnB,aAAa,CAAsB;IAEpD,YAAY,IAAyB,IAAI;QACrC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,IAAW,KAAK,KAAK,OAAO,eAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAE,CAAC,CAAC,CAAC;IAC5D,IAAW,KAAK,CAAC,CAAI;QACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAEe,QAAQ,GAAG,CAAC,KAA0B,EAAE,EAAE;QACtD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC,CAAC;IAEc,KAAK,GAAG,GAAG,EAAE;QACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC,CAAC;CACL;AAtBD,sBAsBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zajno/common",
3
- "version": "2.3.5",
3
+ "version": "2.3.7",
4
4
  "description": "Zajno's re-usable utilities for JS/TS projects",
5
5
  "private": false,
6
6
  "repository": {
@@ -33,22 +33,22 @@
33
33
  },
34
34
  "devDependencies": {
35
35
  "@faker-js/faker": "^8.4.1",
36
- "@types/node": "^20.11.30",
36
+ "@types/node": "^20.12.7",
37
37
  "@vitest/coverage-istanbul": "^1.4.0",
38
38
  "@zajno/eslint-config": "^3.0.1",
39
39
  "cpy-cli": "^5.0.0",
40
40
  "eslint": "^8.57.0",
41
- "fast-check": "^3.16.0",
41
+ "fast-check": "^3.17.1",
42
42
  "jest-extended": "^4.0.2",
43
43
  "rimraf": "^5.0.5",
44
44
  "scripty": "^2.1.1",
45
45
  "ts-node": "^10.9.2",
46
46
  "tslib": "^2.6.2",
47
- "typescript": "^5.4.3",
47
+ "typescript": "^5.4.5",
48
48
  "vitest": "^1.4.0"
49
49
  },
50
50
  "peerDependencies": {
51
- "tslib": "^2.6.2"
51
+ "tslib": "^2.6"
52
52
  },
53
53
  "files": [
54
54
  "LICENSE",
@@ -15,11 +15,12 @@ export declare class PromiseCache<T, K = string> {
15
15
  private readonly fetcher;
16
16
  private readonly keyAdapter?;
17
17
  private readonly keyParser?;
18
- protected readonly _itemsCache: Record<string, T | null | undefined>;
19
- protected readonly _itemsStatus: Record<string, boolean>;
20
- private readonly _fetchCache;
18
+ protected _itemsCache: Record<string, T | null | undefined>;
19
+ protected _itemsStatus: Record<string, boolean>;
20
+ private _fetchCache;
21
21
  private _batch;
22
22
  private _logger;
23
+ private _version;
23
24
  protected _busyCount: number;
24
25
  constructor(fetcher: (id: K) => Promise<T>, keyAdapter?: (K extends string ? null : (k: K) => string) | undefined, keyParser?: (K extends string ? null : (id: string) => K) | undefined);
25
26
  get busyCount(): number;
@@ -36,6 +37,7 @@ export declare class PromiseCache<T, K = string> {
36
37
  hasKey(id: K): boolean;
37
38
  keys(): string[];
38
39
  keysParsed(): K[] | null;
40
+ clear(): void;
39
41
  protected _set(key: string, item: T | null | undefined, promise: Promise<T> | undefined, busy: boolean | undefined): void;
40
42
  /** @override */
41
43
  protected setStatus(key: string, status: boolean): void;
@@ -49,6 +51,7 @@ export declare class PromiseCache<T, K = string> {
49
51
  protected storeResult(key: string, res: T | null): void;
50
52
  /** @override */
51
53
  protected onFetchComplete(key: string): void;
54
+ /** @pure */
52
55
  protected tryFetchInBatch(id: K): Promise<T | null>;
53
56
  }
54
57
  //# sourceMappingURL=promiseCache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"promiseCache.d.ts","sourceRoot":"","sources":["../../src/structures/promiseCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"promiseCache.d.ts","sourceRoot":"","sources":["../../src/structures/promiseCache.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@ class PromiseCache {
21
21
  _fetchCache = {};
22
22
  _batch = null;
23
23
  _logger = null;
24
+ _version = 0;
24
25
  _busyCount = 0;
25
26
  constructor(fetcher, keyAdapter, keyParser) {
26
27
  this.fetcher = fetcher;
@@ -94,9 +95,16 @@ class PromiseCache {
94
95
  return promise;
95
96
  }
96
97
  _doFetchAsync = async (id, key) => {
98
+ let isInSameVersion = true;
97
99
  try {
98
100
  this.onBeforeFetch(key);
101
+ const v = this._version;
99
102
  let res = await this.tryFetchInBatch(id);
103
+ if (v !== this._version) {
104
+ isInSameVersion = false;
105
+ // resolve with actual result but don't store it
106
+ return res;
107
+ }
100
108
  if (this._fetchCache[key] != null) {
101
109
  this._logger?.log(key, 'item\'s <promise> resolved to', res);
102
110
  res = this.prepareResult(res);
@@ -105,7 +113,12 @@ class PromiseCache {
105
113
  return res;
106
114
  }
107
115
  finally {
108
- this.onFetchComplete(key);
116
+ if (isInSameVersion) {
117
+ this.onFetchComplete(key);
118
+ }
119
+ else {
120
+ this._logger?.log(key, 'skipping item\'s resolve due to version change ("clear()" has been called)');
121
+ }
109
122
  }
110
123
  };
111
124
  invalidate(id) {
@@ -129,6 +142,14 @@ class PromiseCache {
129
142
  }
130
143
  return this.keys().map(this.keyParser);
131
144
  }
145
+ clear() {
146
+ ++this._version;
147
+ this._busyCount = 0;
148
+ this._batch?.clear();
149
+ this._itemsCache = {};
150
+ this._itemsStatus = {};
151
+ this._fetchCache = {};
152
+ }
132
153
  _set(key, item, promise, busy) {
133
154
  _setX(key, this._fetchCache, promise);
134
155
  _setX(key, this._itemsStatus, busy);
@@ -160,6 +181,7 @@ class PromiseCache {
160
181
  delete this._fetchCache[key];
161
182
  this._itemsStatus[key] = false;
162
183
  }
184
+ /** @pure */
163
185
  async tryFetchInBatch(id) {
164
186
  const fetchWrap = () => this.fetcher(id).catch(err => {
165
187
  this._logger?.warn('fetcher failed', id, err);
@@ -1 +1 @@
1
- {"version":3,"file":"promiseCache.js","sourceRoot":"","sources":["../../src/structures/promiseCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"promiseCache.js","sourceRoot":"","sources":["../../src/structures/promiseCache.ts"],"names":[],"mappings":"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"}