@zajno/common 2.2.12 → 2.2.14

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.
@@ -36,6 +36,7 @@ export declare class CalendarIndex implements IDayIndex {
36
36
  get day(): number;
37
37
  set(month: number, week?: number, day?: number): this;
38
38
  toIndex(): IDayIndex;
39
+ clone(): CalendarIndex;
39
40
  }
40
41
  /** returns based (1/0) remainder of `value / div`
41
42
  *
@@ -1 +1 @@
1
- {"version":3,"file":"calendarIndex.d.ts","sourceRoot":"","sources":["../../src/dates/calendarIndex.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAW,SAAQ,WAAW;IAC3C,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAU,SAAQ,UAAU;IACzC,GAAG,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,qBAAa,aAAc,YAAW,SAAS;IAW/B,QAAQ,CAAC,OAAO,EAAE,MAAM;IAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC;IAT9D,MAAM,CAAC,eAAe,SAAK;IAE3B,uBAAuB;IAChB,GAAG,EAAE,MAAM,CAAK;IAEvB;;;OAGG;gBACkB,OAAO,GAAE,MAAU,EAAW,IAAI,GAAE,CAAC,GAAG,CAAK;IAElE,IAAW,QAAQ,WAA2D;IAE9E,wDAAwD;IACxD,IAAW,KAAK,WAMf;IAED,IAAW,QAAQ,WAMlB;IAED,uDAAuD;IACvD,IAAW,IAAI,WAOd;IAED,IAAW,GAAG,WAEb;IAEM,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,MAAkB,EAAE,GAAG,GAAE,MAAkB;IAOpE,OAAO,IAAI,SAAS;CAO9B;AAED;;;EAGE;AACF,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAEjF;AAED,oDAAoD;AACpD,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAE7E"}
1
+ {"version":3,"file":"calendarIndex.d.ts","sourceRoot":"","sources":["../../src/dates/calendarIndex.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAW,SAAQ,WAAW;IAC3C,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAU,SAAQ,UAAU;IACzC,GAAG,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,qBAAa,aAAc,YAAW,SAAS;IAW/B,QAAQ,CAAC,OAAO,EAAE,MAAM;IAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC;IAT9D,MAAM,CAAC,eAAe,SAAK;IAE3B,uBAAuB;IAChB,GAAG,EAAE,MAAM,CAAK;IAEvB;;;OAGG;gBACkB,OAAO,GAAE,MAAU,EAAW,IAAI,GAAE,CAAC,GAAG,CAAK;IAElE,IAAW,QAAQ,WAA2D;IAE9E,wDAAwD;IACxD,IAAW,KAAK,WAMf;IAED,IAAW,QAAQ,WAMlB;IAED,uDAAuD;IACvD,IAAW,IAAI,WAOd;IAED,IAAW,GAAG,WAEb;IAEM,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,MAAkB,EAAE,GAAG,GAAE,MAAkB;IAOpE,OAAO,IAAI,SAAS;IAQpB,KAAK;CAKf;AAED;;;EAGE;AACF,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAEjF;AAED,oDAAoD;AACpD,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAE7E"}
@@ -62,6 +62,11 @@ class CalendarIndex {
62
62
  day: this.day,
63
63
  };
64
64
  }
65
+ clone() {
66
+ const res = new CalendarIndex(this.perWeek, this.base);
67
+ res.raw = this.raw;
68
+ return res;
69
+ }
65
70
  }
66
71
  exports.CalendarIndex = CalendarIndex;
67
72
  /** returns based (1/0) remainder of `value / div`
@@ -1 +1 @@
1
- {"version":3,"file":"calendarIndex.js","sourceRoot":"","sources":["../../src/dates/calendarIndex.ts"],"names":[],"mappings":";;;AAaA;;;;;;;;GAQG;AACH,MAAa,aAAa;IAWD;IAA8B;IATnD,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC;IAE3B,uBAAuB;IAChB,GAAG,GAAW,CAAC,CAAC;IAEvB;;;OAGG;IACH,YAAqB,UAAkB,CAAC,EAAW,OAAc,CAAC;QAA7C,YAAO,GAAP,OAAO,CAAY;QAAW,SAAI,GAAJ,IAAI,CAAW;IAAI,CAAC;IAEvE,IAAW,QAAQ,KAAK,OAAO,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC;IAE9E,wDAAwD;IACxD,IAAW,KAAK;QACZ,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;YAChB,OAAO,CAAC,CAAC;QACb,CAAC;QAED,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAED,IAAW,QAAQ;QACf,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;YAChB,OAAO,CAAC,CAAC;QACb,CAAC;QAED,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,uDAAuD;IACvD,IAAW,IAAI;QACX,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QACzB,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,CAAC;QACb,CAAC;QAED,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IACxE,CAAC;IAED,IAAW,GAAG;QACV,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;IAEM,GAAG,CAAC,KAAa,EAAE,OAAe,IAAI,CAAC,IAAI,EAAE,MAAc,IAAI,CAAC,IAAI;QACvE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACtD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,OAAO;QACV,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,EAAE,IAAI,CAAC,GAAG;SAChB,CAAC;IACN,CAAC;;AA3DL,sCA4DC;AAED;;;EAGE;AACF,SAAgB,cAAc,CAAa,IAAW,EAAE,KAAa,EAAE,GAAW;IAC9E,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;AACvC,CAAC;AAFD,wCAEC;AAED,oDAAoD;AACpD,SAAgB,UAAU,CAAa,IAAW,EAAE,KAAa,EAAE,GAAW;IAC1E,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;AACnD,CAAC;AAFD,gCAEC"}
1
+ {"version":3,"file":"calendarIndex.js","sourceRoot":"","sources":["../../src/dates/calendarIndex.ts"],"names":[],"mappings":"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"}
package/lazy/promise.d.ts CHANGED
@@ -16,7 +16,7 @@ export declare class LazyPromise<T> implements IDisposable, LazyLight<T>, ILazyP
16
16
  get promise(): Promise<T>;
17
17
  get value(): NonNullable<T>;
18
18
  protected ensureInstanceLoading(): void;
19
- private setInstance;
19
+ setInstance: (res: T | undefined) => T | undefined;
20
20
  reset: () => void;
21
21
  dispose: () => void;
22
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../src/lazy/promise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEhD,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG;IACrC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;CAChC,CAAC;AAEF,qBAAa,WAAW,CAAC,CAAC,CAAE,YAAW,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;IAQzE,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP5B,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,KAAK,CAAwB;IAErC,OAAO,CAAC,QAAQ,CAA2B;gBAGtB,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC1B,OAAO,GAAE,CAAC,GAAG,SAAqB;IAKvD,IAAI,IAAI,YAAkC;IAC1C,IAAI,QAAQ,YAAmC;IAE/C,IAAI,OAAO,eAGV;IAED,IAAI,KAAK,mBAGR;IAED,SAAS,CAAC,qBAAqB;IAO/B,OAAO,CAAC,WAAW,CAMjB;IAEF,KAAK,aAIH;IAEF,OAAO,aAAsB;CAChC"}
1
+ {"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../src/lazy/promise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEhD,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG;IACrC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;CAChC,CAAC;AAEF,qBAAa,WAAW,CAAC,CAAC,CAAE,YAAW,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;IAQzE,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP5B,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,KAAK,CAAwB;IAErC,OAAO,CAAC,QAAQ,CAA2B;gBAGtB,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC1B,OAAO,GAAE,CAAC,GAAG,SAAqB;IAKvD,IAAI,IAAI,YAAkC;IAC1C,IAAI,QAAQ,YAAmC;IAE/C,IAAI,OAAO,eAGV;IAED,IAAI,KAAK,mBAGR;IAED,SAAS,CAAC,qBAAqB;IAcxB,WAAW,QAAS,CAAC,GAAG,SAAS,mBAWtC;IAEF,KAAK,aAIH;IAEF,OAAO,aAAsB;CAChC"}
package/lazy/promise.js CHANGED
@@ -25,13 +25,23 @@ class LazyPromise {
25
25
  ensureInstanceLoading() {
26
26
  if (this._busy === null) {
27
27
  this._busy = true;
28
- this._promise = this._factory().then(this.setInstance);
28
+ this._promise = this._factory().then(v => {
29
+ // case: during the promise `setInstance` was called
30
+ if (!this._busy && this._instance !== undefined) {
31
+ return this._instance;
32
+ }
33
+ this.setInstance(v);
34
+ return v;
35
+ });
29
36
  }
30
37
  }
31
38
  setInstance = (res) => {
32
39
  this._busy = false;
33
- this._instance = res || undefined;
34
- // keep this._promise to allow to re-use it outside
40
+ // refresh promise so it won't keep old callbacks
41
+ // + make sure it's resolved with the freshest value
42
+ // also do this before setting the instance... just in case :)
43
+ this._promise = Promise.resolve(res);
44
+ this._instance = res;
35
45
  return res;
36
46
  };
37
47
  reset = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"promise.js","sourceRoot":"","sources":["../../src/lazy/promise.ts"],"names":[],"mappings":";;;AAQA,MAAa,WAAW;IAQC;IACA;IAPb,SAAS,GAAkB,SAAS,CAAC;IACrC,KAAK,GAAmB,IAAI,CAAC;IAE7B,QAAQ,GAAsB,IAAI,CAAC;IAE3C,YACqB,QAA0B,EAC1B,UAAyB,SAAS;QADlC,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,YAAO,GAAP,OAAO,CAA2B;QAEnD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC;IAC1C,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC;IAE/C,IAAI,OAAO;QACP,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,QAAS,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK;QACL,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,SAAU,CAAC;IAC3B,CAAC;IAES,qBAAqB;QAC3B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IAEO,WAAW,GAAG,CAAC,GAAM,EAAE,EAAE;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,GAAG,IAAI,SAAS,CAAC;QAClC,mDAAmD;QAEnD,OAAO,GAAG,CAAC;IACf,CAAC,CAAC;IAEF,KAAK,GAAG,GAAG,EAAE;QACT,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC,CAAC;IAEF,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;CAChC;AAjDD,kCAiDC"}
1
+ {"version":3,"file":"promise.js","sourceRoot":"","sources":["../../src/lazy/promise.ts"],"names":[],"mappings":";;;AAQA,MAAa,WAAW;IAQC;IACA;IAPb,SAAS,GAAkB,SAAS,CAAC;IACrC,KAAK,GAAmB,IAAI,CAAC;IAE7B,QAAQ,GAAsB,IAAI,CAAC;IAE3C,YACqB,QAA0B,EAC1B,UAAyB,SAAS;QADlC,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,YAAO,GAAP,OAAO,CAA2B;QAEnD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC;IAC1C,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC;IAE/C,IAAI,OAAO;QACP,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,QAAS,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK;QACL,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,SAAU,CAAC;IAC3B,CAAC;IAES,qBAAqB;QAC3B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACrC,oDAAoD;gBACpD,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;oBAC9C,OAAO,IAAI,CAAC,SAAS,CAAC;gBAC1B,CAAC;gBACD,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACpB,OAAO,CAAC,CAAC;YACb,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAEM,WAAW,GAAG,CAAC,GAAkB,EAAE,EAAE;QACxC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,iDAAiD;QACjD,oDAAoD;QACpD,8DAA8D;QAC9D,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAI,CAAC,CAAC;QAEtC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QAErB,OAAO,GAAG,CAAC;IACf,CAAC,CAAC;IAEF,KAAK,GAAG,GAAG,EAAE;QACT,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC,CAAC;IAEF,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;CAChC;AA7DD,kCA6DC"}
@@ -11,6 +11,7 @@ export declare class Lazy<T> implements IDisposable, LazyLight<T> {
11
11
  protected get isValid(): boolean;
12
12
  private ensureInstance;
13
13
  prewarm(): this;
14
+ setInstance: (instance: T | null) => void;
14
15
  reset(): void;
15
16
  dispose(): void;
16
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../../src/lazy/singleton.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,qBAAa,IAAI,CAAC,CAAC,CAAE,YAAW,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAKjD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC;IACtC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAS,CAAC,KAAK,IAAI;IAJpD,SAAS,CAAC,SAAS,EAAE,CAAC,GAAG,IAAI,CAAQ;gBAGd,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,EACnB,SAAS,CAAC,UAAS,CAAC,KAAK,IAAI,aAAA;IAKpD,IAAI,QAAQ,YAAsC;IAElD,IAAI,KAAK,mBAGR;IAED,iEAAiE;IACjE,SAAS,KAAK,OAAO,YAA4B;IAEjD,OAAO,CAAC,cAAc;IAUtB,OAAO;IAKP,KAAK;IAOL,OAAO;CACV"}
1
+ {"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../../src/lazy/singleton.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,qBAAa,IAAI,CAAC,CAAC,CAAE,YAAW,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAKjD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC;IACtC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAS,CAAC,KAAK,IAAI;IAJpD,SAAS,CAAC,SAAS,EAAE,CAAC,GAAG,IAAI,CAAQ;gBAGd,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,EACnB,SAAS,CAAC,UAAS,CAAC,KAAK,IAAI,aAAA;IAKpD,IAAI,QAAQ,YAAsC;IAElD,IAAI,KAAK,mBAGR;IAED,iEAAiE;IACjE,SAAS,KAAK,OAAO,YAA4B;IAEjD,OAAO,CAAC,cAAc;IAWtB,OAAO;IAKP,WAAW,aAAc,CAAC,GAAG,IAAI,UAE/B;IAEF,KAAK;IAOL,OAAO;CACV"}
package/lazy/singleton.js CHANGED
@@ -22,17 +22,21 @@ class Lazy {
22
22
  }
23
23
  // additional reset to make sure previous instance has been disposed
24
24
  this.reset();
25
- this._instance = this._factory();
25
+ const res = this._factory();
26
+ this.setInstance(res);
26
27
  }
27
28
  prewarm() {
28
29
  this.ensureInstance();
29
30
  return this;
30
31
  }
32
+ setInstance = (instance) => {
33
+ this._instance = instance;
34
+ };
31
35
  reset() {
32
36
  if (this.hasValue && this._instance && this._disposer) {
33
37
  this._disposer(this._instance);
34
38
  }
35
- this._instance = null;
39
+ this.setInstance(null);
36
40
  }
37
41
  dispose() { this.reset(); }
38
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"singleton.js","sourceRoot":"","sources":["../../src/lazy/singleton.ts"],"names":[],"mappings":";;;AAGA,MAAa,IAAI;IAKU;IACA;IAJb,SAAS,GAAa,IAAI,CAAC;IAErC,YACuB,QAAmB,EACnB,SAA6B;QAD7B,aAAQ,GAAR,QAAQ,CAAW;QACnB,cAAS,GAAT,SAAS,CAAoB;IAGpD,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC;IAElD,IAAI,KAAK;QACL,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,SAAU,CAAC;IAC3B,CAAC;IAED,iEAAiE;IACjE,IAAc,OAAO,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEzC,cAAc;QAClB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO;QACX,CAAC;QAED,oEAAoE;QACpE,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IACrC,CAAC;IAED,OAAO;QACH,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK;QACD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,OAAO,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;CAC9B;AA5CD,oBA4CC"}
1
+ {"version":3,"file":"singleton.js","sourceRoot":"","sources":["../../src/lazy/singleton.ts"],"names":[],"mappings":";;;AAGA,MAAa,IAAI;IAKU;IACA;IAJb,SAAS,GAAa,IAAI,CAAC;IAErC,YACuB,QAAmB,EACnB,SAA6B;QAD7B,aAAQ,GAAR,QAAQ,CAAW;QACnB,cAAS,GAAT,SAAS,CAAoB;IAGpD,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC;IAElD,IAAI,KAAK;QACL,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,SAAU,CAAC;IAC3B,CAAC;IAED,iEAAiE;IACjE,IAAc,OAAO,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEzC,cAAc;QAClB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO;QACX,CAAC;QAED,oEAAoE;QACpE,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO;QACH,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW,GAAG,CAAC,QAAkB,EAAE,EAAE;QACjC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC9B,CAAC,CAAC;IAEF,KAAK;QACD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;CAC9B;AAjDD,oBAiDC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zajno/common",
3
- "version": "2.2.12",
3
+ "version": "2.2.14",
4
4
  "description": "Zajno's re-usable utilities for JS/TS projects",
5
5
  "private": false,
6
6
  "repository": {