@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.
- package/coverage/clover.xml +39 -35
- package/coverage/coverage-final.json +1 -1
- package/coverage/lcov-report/index.html +18 -18
- package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
- package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +1 -1
- package/coverage/lcov-report/src/async/arrays.ts.html +1 -1
- package/coverage/lcov-report/src/async/index.html +1 -1
- package/coverage/lcov-report/src/async/timeout.ts.html +1 -1
- package/coverage/lcov-report/src/cache.ts.html +1 -1
- package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
- package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
- package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
- package/coverage/lcov-report/src/dates/format.ts.html +1 -1
- package/coverage/lcov-report/src/dates/index.html +1 -1
- package/coverage/lcov-report/src/dates/index.ts.html +1 -1
- package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
- package/coverage/lcov-report/src/dates/period.ts.html +1 -1
- package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
- package/coverage/lcov-report/src/dates/types.ts.html +1 -1
- package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
- package/coverage/lcov-report/src/disposer.ts.html +1 -1
- package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
- package/coverage/lcov-report/src/event.ts.html +1 -1
- package/coverage/lcov-report/src/fields/index.html +1 -1
- package/coverage/lcov-report/src/fields/update.ts.html +1 -1
- package/coverage/lcov-report/src/functions.ts.html +1 -1
- package/coverage/lcov-report/src/index.html +18 -18
- package/coverage/lcov-report/src/lazy.light.ts.html +1 -1
- package/coverage/lcov-report/src/logger/batch.ts.html +1 -1
- package/coverage/lcov-report/src/logger/console.ts.html +1 -1
- package/coverage/lcov-report/src/logger/index.html +1 -1
- package/coverage/lcov-report/src/logger/index.ts.html +1 -1
- package/coverage/lcov-report/src/logger/named.ts.html +1 -1
- package/coverage/lcov-report/src/logger/proxy.ts.html +1 -1
- package/coverage/lcov-report/src/math/arrays.ts.html +1 -1
- package/coverage/lcov-report/src/math/calc.ts.html +1 -1
- package/coverage/lcov-report/src/math/distribution.ts.html +1 -1
- package/coverage/lcov-report/src/math/index.html +1 -1
- package/coverage/lcov-report/src/math/index.ts.html +1 -1
- package/coverage/lcov-report/src/observersMap.ts.html +1 -1
- package/coverage/lcov-report/src/observingCache.ts.html +58 -13
- package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
- package/coverage/lcov-report/src/types.ts.html +1 -1
- package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
- package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
- package/coverage/lcov-report/src/validation/helpers.ts.html +1 -1
- package/coverage/lcov-report/src/validation/index.html +1 -1
- package/coverage/lcov-report/src/validation/index.ts.html +1 -1
- package/coverage/lcov-report/src/validation/types.ts.html +1 -1
- package/coverage/lcov-report/src/validation/validators.ts.html +1 -1
- package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/Validatable.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/index.html +1 -1
- package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
- package/coverage/lcov.info +79 -69
- package/lib/observingCache.d.ts +2 -0
- package/lib/observingCache.d.ts.map +1 -1
- package/lib/observingCache.js +14 -3
- package/lib/observingCache.js.map +1 -1
- package/lib/viewModels/InitializableModel.d.ts +6 -0
- package/lib/viewModels/InitializableModel.d.ts.map +1 -0
- package/lib/viewModels/InitializableModel.js +23 -0
- package/lib/viewModels/InitializableModel.js.map +1 -0
- package/package.json +1 -1
- package/src/observingCache.ts +18 -3
- 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
|
|
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
|
|
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<T, TModel extends IValueModel<T>, 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
|
|
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>
|
package/coverage/lcov.info
CHANGED
|
@@ -663,23 +663,27 @@ end_of_record
|
|
|
663
663
|
TN:
|
|
664
664
|
SF:src/observingCache.ts
|
|
665
665
|
FN:26,(anonymous_0)
|
|
666
|
-
FN:
|
|
667
|
-
FN:
|
|
668
|
-
FN:
|
|
669
|
-
FN:
|
|
670
|
-
FN:
|
|
671
|
-
FN:
|
|
672
|
-
FN:
|
|
673
|
-
FN:
|
|
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:
|
|
681
|
-
|
|
682
|
-
|
|
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:
|
|
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,
|
|
725
|
-
DA:
|
|
726
|
-
DA:
|
|
727
|
-
DA:
|
|
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:
|
|
732
|
-
DA:74,
|
|
733
|
-
DA:
|
|
734
|
-
DA:
|
|
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,
|
|
740
|
-
DA:
|
|
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,
|
|
744
|
-
DA:
|
|
745
|
-
DA:
|
|
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:
|
|
748
|
-
DA:
|
|
749
|
-
DA:
|
|
750
|
-
DA:
|
|
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,
|
|
757
|
-
DA:
|
|
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:
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
BRDA:
|
|
768
|
-
BRDA:
|
|
769
|
-
BRDA:
|
|
770
|
-
BRDA:
|
|
771
|
-
BRDA:
|
|
772
|
-
BRDA:
|
|
773
|
-
BRDA:
|
|
774
|
-
BRDA:
|
|
775
|
-
BRDA:
|
|
776
|
-
BRDA:
|
|
777
|
-
BRDA:
|
|
778
|
-
BRDA:
|
|
779
|
-
BRDA:
|
|
780
|
-
BRDA:
|
|
781
|
-
BRDA:
|
|
782
|
-
BRDA:
|
|
783
|
-
BRDA:
|
|
784
|
-
BRDA:
|
|
785
|
-
BRDA:
|
|
786
|
-
BRDA:
|
|
787
|
-
BRDA:
|
|
788
|
-
|
|
789
|
-
|
|
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
|
package/lib/observingCache.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/lib/observingCache.js
CHANGED
|
@@ -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]
|
|
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
|
-
|
|
84
|
-
|
|
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":";;;AAAA,+BAA8B;AAC9B,yCAAwC;AACxC,mCAAuD;AACvD,iDAA8C;AAY9C,MAAa,cAAkB,SAAQ,qBAAU;IAU7C,YAAqB,OAAmB;QACpC,KAAK,EAAE,CAAC;QADS,YAAO,GAAP,OAAO,CAAY;QALhC,qBAAgB,GAAoB,IAAI,CAAC;QAChC,8BAAyB,GAAoC,EAAG,CAAC;QAE1E,aAAQ,GAAsB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"observingCache.js","sourceRoot":"","sources":["../src/observingCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
package/src/observingCache.ts
CHANGED
|
@@ -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
|
-
|
|
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]
|
|
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
|
+
}
|