@zajno/common 1.4.5 → 1.4.6

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.
Files changed (70) hide show
  1. package/coverage/clover.xml +39 -35
  2. package/coverage/coverage-final.json +1 -1
  3. package/coverage/lcov-report/index.html +18 -18
  4. package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
  5. package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +1 -1
  6. package/coverage/lcov-report/src/async/arrays.ts.html +1 -1
  7. package/coverage/lcov-report/src/async/index.html +1 -1
  8. package/coverage/lcov-report/src/async/timeout.ts.html +1 -1
  9. package/coverage/lcov-report/src/cache.ts.html +1 -1
  10. package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
  11. package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
  12. package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
  13. package/coverage/lcov-report/src/dates/format.ts.html +1 -1
  14. package/coverage/lcov-report/src/dates/index.html +1 -1
  15. package/coverage/lcov-report/src/dates/index.ts.html +1 -1
  16. package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
  17. package/coverage/lcov-report/src/dates/period.ts.html +1 -1
  18. package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
  19. package/coverage/lcov-report/src/dates/types.ts.html +1 -1
  20. package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
  21. package/coverage/lcov-report/src/disposer.ts.html +1 -1
  22. package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
  23. package/coverage/lcov-report/src/event.ts.html +1 -1
  24. package/coverage/lcov-report/src/fields/index.html +1 -1
  25. package/coverage/lcov-report/src/fields/update.ts.html +1 -1
  26. package/coverage/lcov-report/src/functions.ts.html +1 -1
  27. package/coverage/lcov-report/src/index.html +18 -18
  28. package/coverage/lcov-report/src/lazy.light.ts.html +1 -1
  29. package/coverage/lcov-report/src/logger/batch.ts.html +1 -1
  30. package/coverage/lcov-report/src/logger/console.ts.html +1 -1
  31. package/coverage/lcov-report/src/logger/index.html +1 -1
  32. package/coverage/lcov-report/src/logger/index.ts.html +1 -1
  33. package/coverage/lcov-report/src/logger/named.ts.html +1 -1
  34. package/coverage/lcov-report/src/logger/proxy.ts.html +1 -1
  35. package/coverage/lcov-report/src/math/arrays.ts.html +1 -1
  36. package/coverage/lcov-report/src/math/calc.ts.html +1 -1
  37. package/coverage/lcov-report/src/math/distribution.ts.html +1 -1
  38. package/coverage/lcov-report/src/math/index.html +1 -1
  39. package/coverage/lcov-report/src/math/index.ts.html +1 -1
  40. package/coverage/lcov-report/src/observersMap.ts.html +1 -1
  41. package/coverage/lcov-report/src/observingCache.ts.html +58 -13
  42. package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
  43. package/coverage/lcov-report/src/types.ts.html +1 -1
  44. package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
  45. package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
  46. package/coverage/lcov-report/src/validation/helpers.ts.html +1 -1
  47. package/coverage/lcov-report/src/validation/index.html +1 -1
  48. package/coverage/lcov-report/src/validation/index.ts.html +1 -1
  49. package/coverage/lcov-report/src/validation/types.ts.html +1 -1
  50. package/coverage/lcov-report/src/validation/validators.ts.html +1 -1
  51. package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
  52. package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +1 -1
  53. package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +1 -1
  54. package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +1 -1
  55. package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +1 -1
  56. package/coverage/lcov-report/src/viewModels/Validatable.ts.html +1 -1
  57. package/coverage/lcov-report/src/viewModels/index.html +1 -1
  58. package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
  59. package/coverage/lcov.info +79 -69
  60. package/lib/observingCache.d.ts +2 -0
  61. package/lib/observingCache.d.ts.map +1 -1
  62. package/lib/observingCache.js +14 -3
  63. package/lib/observingCache.js.map +1 -1
  64. package/lib/viewModels/InitializableModel.d.ts +6 -0
  65. package/lib/viewModels/InitializableModel.d.ts.map +1 -0
  66. package/lib/viewModels/InitializableModel.js +23 -0
  67. package/lib/viewModels/InitializableModel.js.map +1 -0
  68. package/package.json +1 -1
  69. package/src/observingCache.ts +18 -3
  70. package/src/viewModels/InitializableModel.ts +17 -0
@@ -361,7 +361,7 @@ export abstract class ValidatableModel<T = string> {
361
361
  <div class='footer quiet pad2 space-top1 center small'>
362
362
  Code coverage generated by
363
363
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
364
- at Wed Feb 09 2022 23:09:57 GMT+0000 (Coordinated Universal Time)
364
+ at Sun Feb 13 2022 23:33:48 GMT+0000 (Coordinated Universal Time)
365
365
  </div>
366
366
  </div>
367
367
  <script src="../../prettify.js"></script>
@@ -170,7 +170,7 @@
170
170
  <div class='footer quiet pad2 space-top1 center small'>
171
171
  Code coverage generated by
172
172
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
173
- at Wed Feb 09 2022 23:09:57 GMT+0000 (Coordinated Universal Time)
173
+ at Sun Feb 13 2022 23:33:48 GMT+0000 (Coordinated Universal Time)
174
174
  </div>
175
175
  </div>
176
176
  <script src="../../prettify.js"></script>
@@ -211,7 +211,7 @@ export function mixinLabel&lt;T, TModel extends IValueModel&lt;T&gt;, TLabel = s
211
211
  <div class='footer quiet pad2 space-top1 center small'>
212
212
  Code coverage generated by
213
213
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
214
- at Wed Feb 09 2022 23:09:57 GMT+0000 (Coordinated Universal Time)
214
+ at Sun Feb 13 2022 23:33:48 GMT+0000 (Coordinated Universal Time)
215
215
  </div>
216
216
  </div>
217
217
  <script src="../../prettify.js"></script>
@@ -663,23 +663,27 @@ end_of_record
663
663
  TN:
664
664
  SF:src/observingCache.ts
665
665
  FN:26,(anonymous_0)
666
- FN:73,(anonymous_1)
667
- FN:77,(anonymous_2)
668
- FN:80,(anonymous_3)
669
- FN:82,(anonymous_4)
670
- FN:90,(anonymous_5)
671
- FN:103,(anonymous_6)
672
- FN:105,(anonymous_7)
673
- FN:109,(anonymous_8)
666
+ FN:84,(anonymous_1)
667
+ FN:88,(anonymous_2)
668
+ FN:91,(anonymous_3)
669
+ FN:93,(anonymous_4)
670
+ FN:101,(anonymous_5)
671
+ FN:114,(anonymous_6)
672
+ FN:116,(anonymous_7)
673
+ FN:120,(anonymous_8)
674
674
  FN:35,(anonymous_9)
675
675
  FN:36,(anonymous_10)
676
676
  FN:38,(anonymous_11)
677
677
  FN:45,(anonymous_12)
678
678
  FN:51,(anonymous_13)
679
679
  FN:57,(anonymous_14)
680
- FN:124,getObserveTimeout
681
- FNF:16
682
- FNH:9
680
+ FN:61,(anonymous_15)
681
+ FN:65,(anonymous_16)
682
+ FN:135,getObserveTimeout
683
+ FN:148,firstDefined
684
+ FN:149,(anonymous_19)
685
+ FNF:20
686
+ FNH:11
683
687
  FNDA:2,(anonymous_0)
684
688
  FNDA:0,(anonymous_1)
685
689
  FNDA:2,(anonymous_2)
@@ -694,8 +698,12 @@ FNDA:0,(anonymous_10)
694
698
  FNDA:1,(anonymous_11)
695
699
  FNDA:0,(anonymous_12)
696
700
  FNDA:0,(anonymous_13)
697
- FNDA:2,(anonymous_14)
701
+ FNDA:0,(anonymous_14)
702
+ FNDA:0,(anonymous_15)
703
+ FNDA:2,(anonymous_16)
698
704
  FNDA:2,getObserveTimeout
705
+ FNDA:4,firstDefined
706
+ FNDA:8,(anonymous_19)
699
707
  DA:1,1
700
708
  DA:2,1
701
709
  DA:3,1
@@ -721,72 +729,74 @@ DA:48,1
721
729
  DA:52,0
722
730
  DA:53,0
723
731
  DA:54,0
724
- DA:58,2
725
- DA:60,2
726
- DA:61,2
727
- DA:63,1
728
- DA:65,0
729
- DA:66,0
732
+ DA:58,0
733
+ DA:62,0
734
+ DA:66,2
735
+ DA:67,0
730
736
  DA:70,2
731
- DA:73,2
732
- DA:74,0
733
- DA:77,2
734
- DA:78,2
735
- DA:80,2
737
+ DA:72,2
738
+ DA:74,1
739
+ DA:76,0
740
+ DA:77,0
736
741
  DA:81,2
737
- DA:83,3
738
742
  DA:84,2
739
- DA:85,2
740
- DA:87,1
743
+ DA:85,0
744
+ DA:88,2
745
+ DA:89,2
741
746
  DA:91,2
742
747
  DA:92,2
743
- DA:94,1
744
- DA:96,1
745
- DA:97,1
748
+ DA:94,3
749
+ DA:95,2
750
+ DA:96,2
751
+ DA:98,1
752
+ DA:102,2
746
753
  DA:103,2
747
- DA:104,0
748
- DA:105,0
749
- DA:109,2
750
- DA:110,1
751
- DA:111,0
752
- DA:112,0
753
- DA:113,0
754
+ DA:105,1
755
+ DA:107,1
756
+ DA:108,1
757
+ DA:114,2
754
758
  DA:115,0
755
759
  DA:116,0
756
- DA:120,1
757
- DA:125,2
760
+ DA:120,2
761
+ DA:121,1
762
+ DA:122,0
763
+ DA:123,0
764
+ DA:124,0
758
765
  DA:126,0
759
- DA:129,2
760
- LF:61
761
- LH:44
762
- BRDA:83,0,0,2
763
- BRDA:83,0,1,1
764
- BRDA:91,1,0,2
765
- BRDA:91,1,1,2
766
- BRDA:92,2,0,1
767
- BRDA:92,2,1,1
768
- BRDA:110,3,0,0
769
- BRDA:110,3,1,1
770
- BRDA:112,4,0,0
771
- BRDA:112,4,1,0
772
- BRDA:40,5,0,0
773
- BRDA:40,5,1,1
774
- BRDA:60,6,0,2
775
- BRDA:60,6,1,2
776
- BRDA:61,7,0,1
777
- BRDA:61,7,1,1
778
- BRDA:61,8,0,2
779
- BRDA:61,8,1,1
780
- BRDA:63,9,0,0
781
- BRDA:63,9,1,1
782
- BRDA:125,10,0,0
783
- BRDA:125,10,1,2
784
- BRDA:130,11,0,0
785
- BRDA:130,11,1,2
786
- BRDA:132,12,0,0
787
- BRDA:132,12,1,2
788
- BRF:26
789
- BRH:18
766
+ DA:127,0
767
+ DA:131,1
768
+ DA:136,2
769
+ DA:137,0
770
+ DA:140,2
771
+ DA:149,8
772
+ LF:65
773
+ LH:45
774
+ BRDA:94,0,0,2
775
+ BRDA:94,0,1,1
776
+ BRDA:103,1,0,1
777
+ BRDA:103,1,1,1
778
+ BRDA:121,2,0,0
779
+ BRDA:121,2,1,1
780
+ BRDA:123,3,0,0
781
+ BRDA:123,3,1,0
782
+ BRDA:40,4,0,0
783
+ BRDA:40,4,1,1
784
+ BRDA:66,5,0,0
785
+ BRDA:66,5,1,2
786
+ BRDA:72,6,0,1
787
+ BRDA:72,6,1,1
788
+ BRDA:72,7,0,2
789
+ BRDA:72,7,1,1
790
+ BRDA:74,8,0,0
791
+ BRDA:74,8,1,1
792
+ BRDA:136,9,0,0
793
+ BRDA:136,9,1,2
794
+ BRDA:141,10,0,0
795
+ BRDA:141,10,1,2
796
+ BRDA:143,11,0,0
797
+ BRDA:143,11,1,2
798
+ BRF:24
799
+ BRH:15
790
800
  end_of_record
791
801
  TN:
792
802
  SF:src/transitionObserver.ts
@@ -19,6 +19,8 @@ export declare class ObservingCache<T> extends Disposable implements IObservingC
19
19
  get observersCount(): number;
20
20
  useObservingStrategy(observe: ObserveStrategy): this;
21
21
  useUpdater(updater: Fields.Updater<T>): this;
22
+ getIsCached(key: string): boolean;
23
+ getCurent(key: string): T;
22
24
  get(key: string, overrideStrategy?: ObserveStrategy): DeferredGetter<T>;
23
25
  populate: (key: string, item: T) => void;
24
26
  private _fetch;
@@ -1 +1 @@
1
- {"version":3,"file":"observingCache.d.ts","sourceRoot":"","sources":["../src/observingCache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAgB,cAAc,EAAE,MAAM,SAAS,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,oBAAY,KAAK,GAAG,MAAM,IAAI,CAAC;AAC/B,oBAAY,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;AAEvG,aAAK,eAAe,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AAElD,MAAM,WAAW,eAAe,CAAC,CAAC;IAC9B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;CACvC;AAED,qBAAa,cAAc,CAAC,CAAC,CAAE,SAAQ,UAAW,YAAW,eAAe,CAAC,CAAC,CAAC;IAU/D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IARxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAe;IAE1C,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAwC;IAElF,OAAO,CAAC,QAAQ,CAA2B;gBAEtB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IASxC,IAAW,YAAY,WAAoC;IAC3D,IAAW,cAAc,WAAoC;IAE7D,oBAAoB,CAAC,OAAO,EAAE,eAAe;IAa7C,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAMrC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,eAAe,GAAG,cAAc,CAAC,CAAC,CAAC;IAgBvE,QAAQ,QAAS,MAAM,QAAQ,CAAC,UAE9B;IAEF,OAAO,CAAC,MAAM,CAwBZ;IAEF,OAAO,CAAC,UAAU,CAIhB;IAEF,OAAO,CAAC,WAAW,CAYhB;CACN"}
1
+ {"version":3,"file":"observingCache.d.ts","sourceRoot":"","sources":["../src/observingCache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAgB,cAAc,EAAE,MAAM,SAAS,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,oBAAY,KAAK,GAAG,MAAM,IAAI,CAAC;AAC/B,oBAAY,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;AAEvG,aAAK,eAAe,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AAElD,MAAM,WAAW,eAAe,CAAC,CAAC;IAC9B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;CACvC;AAED,qBAAa,cAAc,CAAC,CAAC,CAAE,SAAQ,UAAW,YAAW,eAAe,CAAC,CAAC,CAAC;IAU/D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IARxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAe;IAE1C,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAwC;IAElF,OAAO,CAAC,QAAQ,CAA2B;gBAEtB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IASxC,IAAW,YAAY,WAAoC;IAC3D,IAAW,cAAc,WAAoC;IAE7D,oBAAoB,CAAC,OAAO,EAAE,eAAe;IAa7C,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAMrC,WAAW,CAAC,GAAG,EAAE,MAAM;IAIvB,SAAS,CAAC,GAAG,EAAE,MAAM;IAIrB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,eAAe,GAAG,cAAc,CAAC,CAAC,CAAC;IAmBvE,QAAQ,QAAS,MAAM,QAAQ,CAAC,UAE9B;IAEF,OAAO,CAAC,MAAM,CAwBZ;IAEF,OAAO,CAAC,UAAU,CAIhB;IAEF,OAAO,CAAC,WAAW,CAYhB;CACN"}
@@ -27,7 +27,7 @@ class ObservingCache extends disposer_1.Disposable {
27
27
  this._updateItem(key, item);
28
28
  }
29
29
  })).then(unsub => {
30
- const strategy = this._observeStrategyOverrides[key] || this._observeStrategy;
30
+ const strategy = firstDefined(this._observeStrategyOverrides[key], this._observeStrategy);
31
31
  if (!strategy) {
32
32
  // immediate unsub in case no observing strategy has been set
33
33
  unsub();
@@ -79,9 +79,17 @@ class ObservingCache extends disposer_1.Disposable {
79
79
  this._cache.useObserveItems(updater != null);
80
80
  return this;
81
81
  }
82
+ getIsCached(key) {
83
+ return this._cache.hasKey(key);
84
+ }
85
+ getCurent(key) {
86
+ return this._cache.getCurrent(key, false);
87
+ }
82
88
  get(key, overrideStrategy) {
83
- this._observeStrategyOverrides[key] = overrideStrategy;
84
- const strategy = overrideStrategy || this._observeStrategy;
89
+ if (overrideStrategy !== undefined) {
90
+ this._observeStrategyOverrides[key] = overrideStrategy;
91
+ }
92
+ const strategy = firstDefined(this._observeStrategyOverrides[key], this._observeStrategy);
85
93
  if (strategy && !this._observers.getIsObserving(key)) {
86
94
  // ensure observe
87
95
  if (this._cache.hasKey(key)) {
@@ -104,4 +112,7 @@ function getObserveTimeout(s) {
104
112
  ? 5 * 60 * 1000
105
113
  : null);
106
114
  }
115
+ function firstDefined(...values) {
116
+ return values.find(v => v !== undefined);
117
+ }
107
118
  //# sourceMappingURL=observingCache.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"observingCache.js","sourceRoot":"","sources":["../src/observingCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observingCache.js","sourceRoot":"","sources":["../src/observingCache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare class InitializableModel {
2
+ private readonly _counter;
3
+ get initializing(): boolean;
4
+ protected runOperation<T>(operation: () => Promise<T> | T): Promise<T>;
5
+ }
6
+ //# sourceMappingURL=InitializableModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InitializableModel.d.ts","sourceRoot":"","sources":["../../src/viewModels/InitializableModel.ts"],"names":[],"mappings":"AAEA,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAE/C,IAAW,YAAY,YAAsC;cAE7C,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAS/E"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InitializableModel = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const NumberModel_1 = tslib_1.__importDefault(require("./NumberModel"));
6
+ class InitializableModel {
7
+ constructor() {
8
+ this._counter = new NumberModel_1.default(0);
9
+ }
10
+ get initializing() { return this._counter.value > 0; }
11
+ async runOperation(operation) {
12
+ try {
13
+ this._counter.increment();
14
+ const res = await operation();
15
+ return res;
16
+ }
17
+ finally {
18
+ this._counter.decrement();
19
+ }
20
+ }
21
+ }
22
+ exports.InitializableModel = InitializableModel;
23
+ //# sourceMappingURL=InitializableModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InitializableModel.js","sourceRoot":"","sources":["../../src/viewModels/InitializableModel.ts"],"names":[],"mappings":";;;;AAAA,wEAAwC;AAExC,MAAa,kBAAkB;IAA/B;QACqB,aAAQ,GAAG,IAAI,qBAAW,CAAC,CAAC,CAAC,CAAC;IAanD,CAAC;IAXG,IAAW,YAAY,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IAEnD,KAAK,CAAC,YAAY,CAAI,SAA+B;QAC3D,IAAI;YACA,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC;YAC9B,OAAO,GAAG,CAAC;SACd;gBAAS;YACN,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;SAC7B;IACL,CAAC;CACJ;AAdD,gDAcC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zajno/common",
3
- "version": "1.4.5",
3
+ "version": "1.4.6",
4
4
  "description": "Zajno's re-usable utilities for JS/TS projects",
5
5
  "repository": {
6
6
  "type": "git",
@@ -54,10 +54,21 @@ export class ObservingCache<T> extends Disposable implements IObservingCache<T>
54
54
  return this;
55
55
  }
56
56
 
57
+ getIsCached(key: string) {
58
+ return this._cache.hasKey(key);
59
+ }
60
+
61
+ getCurent(key: string) {
62
+ return this._cache.getCurrent(key, false);
63
+ }
64
+
57
65
  get(key: string, overrideStrategy?: ObserveStrategy): DeferredGetter<T> {
58
- this._observeStrategyOverrides[key] = overrideStrategy;
66
+ if (overrideStrategy !== undefined) {
67
+ this._observeStrategyOverrides[key] = overrideStrategy;
68
+ }
69
+
70
+ const strategy = firstDefined(this._observeStrategyOverrides[key], this._observeStrategy);
59
71
 
60
- const strategy = overrideStrategy || this._observeStrategy;
61
72
  if (strategy && !this._observers.getIsObserving(key)) {
62
73
  // ensure observe
63
74
  if (this._cache.hasKey(key)) {
@@ -88,7 +99,7 @@ export class ObservingCache<T> extends Disposable implements IObservingCache<T>
88
99
  }
89
100
  })
90
101
  ).then(unsub => {
91
- const strategy = this._observeStrategyOverrides[key] || this._observeStrategy;
102
+ const strategy = firstDefined(this._observeStrategyOverrides[key], this._observeStrategy);
92
103
  if (!strategy) {
93
104
  // immediate unsub in case no observing strategy has been set
94
105
  unsub();
@@ -133,3 +144,7 @@ function getObserveTimeout(s: ObserveStrategy) {
133
144
  : null
134
145
  );
135
146
  }
147
+
148
+ function firstDefined<T>(...values: (T | undefined)[]) {
149
+ return values.find(v => v !== undefined);
150
+ }
@@ -0,0 +1,17 @@
1
+ import NumberModel from './NumberModel';
2
+
3
+ export class InitializableModel {
4
+ private readonly _counter = new NumberModel(0);
5
+
6
+ public get initializing() { return this._counter.value > 0; }
7
+
8
+ protected async runOperation<T>(operation: () => Promise<T> | T): Promise<T> {
9
+ try {
10
+ this._counter.increment();
11
+ const res = await operation();
12
+ return res;
13
+ } finally {
14
+ this._counter.decrement();
15
+ }
16
+ }
17
+ }