@zajno/common 1.3.4 → 1.3.5

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 (66) hide show
  1. package/coverage/clover.xml +65 -61
  2. package/coverage/coverage-final.json +39 -39
  3. package/coverage/lcov-report/index.html +20 -20
  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/dates/calc.ts.html +1 -1
  9. package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
  10. package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
  11. package/coverage/lcov-report/src/dates/format.ts.html +1 -1
  12. package/coverage/lcov-report/src/dates/index.html +1 -1
  13. package/coverage/lcov-report/src/dates/index.ts.html +1 -1
  14. package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
  15. package/coverage/lcov-report/src/dates/period.ts.html +1 -1
  16. package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
  17. package/coverage/lcov-report/src/dates/types.ts.html +1 -1
  18. package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
  19. package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
  20. package/coverage/lcov-report/src/event.ts.html +1 -1
  21. package/coverage/lcov-report/src/index.html +1 -1
  22. package/coverage/lcov-report/src/lazy.light.ts.html +1 -1
  23. package/coverage/lcov-report/src/logger/batch.ts.html +1 -1
  24. package/coverage/lcov-report/src/logger/console.ts.html +1 -1
  25. package/coverage/lcov-report/src/logger/index.html +1 -1
  26. package/coverage/lcov-report/src/logger/index.ts.html +1 -1
  27. package/coverage/lcov-report/src/logger/named.ts.html +1 -1
  28. package/coverage/lcov-report/src/logger/proxy.ts.html +1 -1
  29. package/coverage/lcov-report/src/math/arrays.ts.html +1 -1
  30. package/coverage/lcov-report/src/math/calc.ts.html +1 -1
  31. package/coverage/lcov-report/src/math/distribution.ts.html +1 -1
  32. package/coverage/lcov-report/src/math/index.html +1 -1
  33. package/coverage/lcov-report/src/math/index.ts.html +1 -1
  34. package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
  35. package/coverage/lcov-report/src/types.ts.html +1 -1
  36. package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
  37. package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
  38. package/coverage/lcov-report/src/validation/helpers.ts.html +1 -1
  39. package/coverage/lcov-report/src/validation/index.html +1 -1
  40. package/coverage/lcov-report/src/validation/index.ts.html +1 -1
  41. package/coverage/lcov-report/src/validation/types.ts.html +1 -1
  42. package/coverage/lcov-report/src/validation/validators.ts.html +1 -1
  43. package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
  44. package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +1 -1
  45. package/coverage/lcov-report/src/viewModels/LabeledFlagModel.ts.html +26 -17
  46. package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +1 -1
  47. package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +1 -1
  48. package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +1 -1
  49. package/coverage/lcov-report/src/viewModels/SelectViewModel.ts.html +14 -17
  50. package/coverage/lcov-report/src/viewModels/Validatable.ts.html +34 -10
  51. package/coverage/lcov-report/src/viewModels/index.html +20 -20
  52. package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
  53. package/coverage/lcov-report/transitionObserver.ts.html +77 -41
  54. package/coverage/lcov.info +47 -39
  55. package/lib/viewModels/Validatable.d.ts +2 -1
  56. package/lib/viewModels/Validatable.d.ts.map +1 -1
  57. package/lib/viewModels/Validatable.js +7 -0
  58. package/lib/viewModels/Validatable.js.map +1 -1
  59. package/package.json +1 -1
  60. package/src/viewModels/Validatable.ts +8 -0
  61. package/yarn-error.log +3709 -0
  62. package/coverage/lcov-report/NumberModel.ts.html +0 -188
  63. package/coverage/lcov-report/arrays.ts.html +0 -602
  64. package/coverage/lcov-report/calc.ts.html +0 -278
  65. package/coverage/lcov-report/enumHelper.ts.html +0 -449
  66. package/coverage/lcov-report/src/viewModels/labeled.ts.html +0 -128
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">93.06% </span>
26
+ <span class="strong">91.25% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>67/72</span>
28
+ <span class='fraction'>73/80</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">87.88% </span>
33
+ <span class="strong">83.78% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>29/33</span>
35
+ <span class='fraction'>31/37</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">84.21% </span>
40
+ <span class="strong">85.71% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>16/19</span>
42
+ <span class='fraction'>18/21</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">92.96% </span>
47
+ <span class="strong">91.14% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>66/71</span>
49
+ <span class='fraction'>72/79</span>
50
50
  </div>
51
51
 
52
52
 
@@ -209,7 +209,19 @@
209
209
  <a name='L150'></a><a href='#L150'>150</a>
210
210
  <a name='L151'></a><a href='#L151'>151</a>
211
211
  <a name='L152'></a><a href='#L152'>152</a>
212
- <a name='L153'></a><a href='#L153'>153</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
212
+ <a name='L153'></a><a href='#L153'>153</a>
213
+ <a name='L154'></a><a href='#L154'>154</a>
214
+ <a name='L155'></a><a href='#L155'>155</a>
215
+ <a name='L156'></a><a href='#L156'>156</a>
216
+ <a name='L157'></a><a href='#L157'>157</a>
217
+ <a name='L158'></a><a href='#L158'>158</a>
218
+ <a name='L159'></a><a href='#L159'>159</a>
219
+ <a name='L160'></a><a href='#L160'>160</a>
220
+ <a name='L161'></a><a href='#L161'>161</a>
221
+ <a name='L162'></a><a href='#L162'>162</a>
222
+ <a name='L163'></a><a href='#L163'>163</a>
223
+ <a name='L164'></a><a href='#L164'>164</a>
224
+ <a name='L165'></a><a href='#L165'>165</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
213
225
  <span class="cline-any cline-yes">1x</span>
214
226
  <span class="cline-any cline-yes">1x</span>
215
227
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -242,6 +254,9 @@
242
254
  <span class="cline-any cline-yes">1x</span>
243
255
  <span class="cline-any cline-yes">3x</span>
244
256
  <span class="cline-any cline-neutral">&nbsp;</span>
257
+ <span class="cline-any cline-yes">3x</span>
258
+ <span class="cline-any cline-yes">19x</span>
259
+ <span class="cline-any cline-neutral">&nbsp;</span>
245
260
  <span class="cline-any cline-neutral">&nbsp;</span>
246
261
  <span class="cline-any cline-yes">7x</span>
247
262
  <span class="cline-any cline-yes">7x</span>
@@ -261,8 +276,11 @@
261
276
  <span class="cline-any cline-neutral">&nbsp;</span>
262
277
  <span class="cline-any cline-neutral">&nbsp;</span>
263
278
  <span class="cline-any cline-neutral">&nbsp;</span>
264
- <span class="cline-any cline-yes">9x</span>
265
- <span class="cline-any cline-yes">9x</span>
279
+ <span class="cline-any cline-yes">7x</span>
280
+ <span class="cline-any cline-no">&nbsp;</span>
281
+ <span class="cline-any cline-neutral">&nbsp;</span>
282
+ <span class="cline-any cline-yes">7x</span>
283
+ <span class="cline-any cline-yes">7x</span>
266
284
  <span class="cline-any cline-neutral">&nbsp;</span>
267
285
  <span class="cline-any cline-neutral">&nbsp;</span>
268
286
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -287,13 +305,18 @@
287
305
  <span class="cline-any cline-neutral">&nbsp;</span>
288
306
  <span class="cline-any cline-neutral">&nbsp;</span>
289
307
  <span class="cline-any cline-neutral">&nbsp;</span>
290
- <span class="cline-any cline-yes">2x</span>
291
- <span class="cline-any cline-yes">2x</span>
292
- <span class="cline-any cline-yes">2x</span>
293
- <span class="cline-any cline-yes">2x</span>
308
+ <span class="cline-any cline-yes">3x</span>
309
+ <span class="cline-any cline-yes">3x</span>
310
+ <span class="cline-any cline-no">&nbsp;</span>
294
311
  <span class="cline-any cline-neutral">&nbsp;</span>
295
312
  <span class="cline-any cline-neutral">&nbsp;</span>
296
- <span class="cline-any cline-yes">2x</span>
313
+ <span class="cline-any cline-yes">3x</span>
314
+ <span class="cline-any cline-yes">3x</span>
315
+ <span class="cline-any cline-yes">3x</span>
316
+ <span class="cline-any cline-neutral">&nbsp;</span>
317
+ <span class="cline-any cline-yes">3x</span>
318
+ <span class="cline-any cline-neutral">&nbsp;</span>
319
+ <span class="cline-any cline-yes">3x</span>
297
320
  <span class="cline-any cline-neutral">&nbsp;</span>
298
321
  <span class="cline-any cline-neutral">&nbsp;</span>
299
322
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -311,6 +334,7 @@
311
334
  <span class="cline-any cline-yes">12x</span>
312
335
  <span class="cline-any cline-yes">12x</span>
313
336
  <span class="cline-any cline-yes">5x</span>
337
+ <span class="cline-any cline-yes">5x</span>
314
338
  <span class="cline-any cline-neutral">&nbsp;</span>
315
339
  <span class="cline-any cline-yes">12x</span>
316
340
  <span class="cline-any cline-yes">1x</span>
@@ -318,14 +342,14 @@
318
342
  <span class="cline-any cline-neutral">&nbsp;</span>
319
343
  <span class="cline-any cline-neutral">&nbsp;</span>
320
344
  <span class="cline-any cline-yes">7x</span>
321
- <span class="cline-any cline-yes">17x</span>
345
+ <span class="cline-any cline-yes">19x</span>
322
346
  <span class="cline-any cline-neutral">&nbsp;</span>
323
- <span class="cline-any cline-yes">17x</span>
347
+ <span class="cline-any cline-yes">19x</span>
324
348
  <span class="cline-any cline-neutral">&nbsp;</span>
325
349
  <span class="cline-any cline-yes">4x</span>
326
- <span class="cline-any cline-yes">13x</span>
350
+ <span class="cline-any cline-yes">15x</span>
327
351
  <span class="cline-any cline-neutral">&nbsp;</span>
328
- <span class="cline-any cline-yes">9x</span>
352
+ <span class="cline-any cline-yes">11x</span>
329
353
  <span class="cline-any cline-neutral">&nbsp;</span>
330
354
  <span class="cline-any cline-neutral">&nbsp;</span>
331
355
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -333,31 +357,31 @@
333
357
  <span class="cline-any cline-yes">4x</span>
334
358
  <span class="cline-any cline-neutral">&nbsp;</span>
335
359
  <span class="cline-any cline-neutral">&nbsp;</span>
336
- <span class="cline-any cline-yes">17x</span>
360
+ <span class="cline-any cline-yes">19x</span>
337
361
  <span class="cline-any cline-neutral">&nbsp;</span>
338
- <span class="cline-any cline-yes">17x</span>
362
+ <span class="cline-any cline-yes">19x</span>
339
363
  <span class="cline-any cline-neutral">&nbsp;</span>
340
- <span class="cline-any cline-yes">17x</span>
341
- <span class="cline-any cline-yes">10x</span>
364
+ <span class="cline-any cline-yes">19x</span>
365
+ <span class="cline-any cline-yes">11x</span>
342
366
  <span class="cline-any cline-neutral">&nbsp;</span>
343
- <span class="cline-any cline-yes">10x</span>
344
- <span class="cline-any cline-yes">10x</span>
367
+ <span class="cline-any cline-yes">11x</span>
368
+ <span class="cline-any cline-yes">11x</span>
345
369
  <span class="cline-any cline-neutral">&nbsp;</span>
346
370
  <span class="cline-any cline-neutral">&nbsp;</span>
347
- <span class="cline-any cline-yes">10x</span>
371
+ <span class="cline-any cline-yes">11x</span>
348
372
  <span class="cline-any cline-yes">1x</span>
349
373
  <span class="cline-any cline-neutral">&nbsp;</span>
350
374
  <span class="cline-any cline-neutral">&nbsp;</span>
351
375
  <span class="cline-any cline-neutral">&nbsp;</span>
352
- <span class="cline-any cline-yes">17x</span>
376
+ <span class="cline-any cline-yes">19x</span>
353
377
  <span class="cline-any cline-neutral">&nbsp;</span>
354
378
  <span class="cline-any cline-neutral">&nbsp;</span>
355
379
  <span class="cline-any cline-neutral">&nbsp;</span>
356
- <span class="cline-any cline-yes">2x</span>
357
- <span class="cline-any cline-yes">2x</span>
358
- <span class="cline-any cline-yes">2x</span>
359
- <span class="cline-any cline-yes">2x</span>
360
- <span class="cline-any cline-yes">2x</span>
380
+ <span class="cline-any cline-yes">3x</span>
381
+ <span class="cline-any cline-yes">3x</span>
382
+ <span class="cline-any cline-yes">3x</span>
383
+ <span class="cline-any cline-yes">3x</span>
384
+ <span class="cline-any cline-yes">3x</span>
361
385
  <span class="cline-any cline-neutral">&nbsp;</span>
362
386
  <span class="cline-any cline-neutral">&nbsp;</span>
363
387
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -380,8 +404,8 @@ export class TransitionObserver&lt;T&gt; implements IDisposable {
380
404
  private _cb: (v: T) =&gt; any;
381
405
  private _fireOnce = false;
382
406
  &nbsp;
383
- private _promise: Promise&lt;void&gt; = null;
384
- private _promiseReject: (err: Error) =&gt; any = null;
407
+ private _promise: Promise&lt;T&gt; = null;
408
+ private _promiseReject: (err?: any) =&gt; any = null;
385
409
  &nbsp;
386
410
  private logger: ILogger = createLogger('', true);
387
411
  &nbsp;
@@ -393,6 +417,9 @@ export class TransitionObserver&lt;T&gt; implements IDisposable {
393
417
  &nbsp;
394
418
  public get event(): IEvent&lt;T&gt; { return this._event; }
395
419
  public get currentValue() { return this._prev; }
420
+ &nbsp;
421
+ public get isObserving() { return this._disposer != null; }
422
+ private get isPromising() { return this._promiseReject != null; }
396
423
  &nbsp;
397
424
  observe(getter: () =&gt; T) {
398
425
  this.dispose();
@@ -413,6 +440,9 @@ export class TransitionObserver&lt;T&gt; implements IDisposable {
413
440
  }
414
441
  &nbsp;
415
442
  cb(cb: (v: T) =&gt; any) {
443
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (this.isPromising) {
444
+ <span class="cstat-no" title="statement not covered" > throw new Error('Cannot set callback when promise is running');</span>
445
+ }
416
446
  this._cb = cb;
417
447
  return this;
418
448
  }
@@ -440,10 +470,15 @@ export class TransitionObserver&lt;T&gt; implements IDisposable {
440
470
  &nbsp;
441
471
  getPromise() {
442
472
  <span class="missing-if-branch" title="else path not taken" >E</span>if (!this._promise) {
443
- this._promise = new Promise&lt;void&gt;((resolve, reject) =&gt; {
473
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!this.isObserving) {
474
+ <span class="cstat-no" title="statement not covered" > return Promise.reject(new Error('Cannot get promise for disposed TransitionObserver'));</span>
475
+ }
476
+ &nbsp;
477
+ this._promise = new Promise&lt;T&gt;((resolve, reject) =&gt; {
444
478
  this._promiseReject = reject;
445
- this.cb(() =&gt; this._finishPromise(resolve));
479
+ this._cb = (v =&gt; this._finishPromise(resolve, v));
446
480
  });
481
+ this.logger.log('started a new promise...');
447
482
  }
448
483
  return this._promise;
449
484
  }
@@ -463,8 +498,9 @@ export class TransitionObserver&lt;T&gt; implements IDisposable {
463
498
  this.logger.log(' disposing... ');
464
499
  if (this._disposer) {
465
500
  this._disposer();
501
+ this._disposer = null;
466
502
  }
467
- if (this._promiseReject) {
503
+ if (this.isPromising) {
468
504
  this._finishPromise(this._promiseReject, new Error('TransitionObserver Aborted'));
469
505
  }
470
506
  };
@@ -504,12 +540,12 @@ export class TransitionObserver&lt;T&gt; implements IDisposable {
504
540
  return trigger;
505
541
  };
506
542
  &nbsp;
507
- private _finishPromise(cb: (e?: any) =&gt; any, err?: Error) {
543
+ private _finishPromise&lt;T&gt;(cb: (a?: T) =&gt; any, arg?: T) {
508
544
  this._promise = null;
509
545
  this._promiseReject = null;
510
546
  this._cb = null;
511
547
  <span class="missing-if-branch" title="else path not taken" >E</span>if (cb) {
512
- cb(err);
548
+ cb(arg);
513
549
  }
514
550
  }
515
551
  }
@@ -520,7 +556,7 @@ export class TransitionObserver&lt;T&gt; implements IDisposable {
520
556
  <div class='footer quiet pad2 space-top1 center small'>
521
557
  Code coverage generated by
522
558
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
523
- at Mon Nov 01 2021 21:48:46 GMT+0000 (Coordinated Universal Time)
559
+ at Tue Nov 02 2021 16:09:11 GMT+0000 (Coordinated Universal Time)
524
560
  </div>
525
561
  </div>
526
562
  <script src="prettify.js"></script>
@@ -2717,26 +2717,28 @@ FN:31,(anonymous_2)
2717
2717
  FN:33,(anonymous_3)
2718
2718
  FN:35,(anonymous_4)
2719
2719
  FN:41,(anonymous_5)
2720
- FN:64,(anonymous_6)
2721
- FN:70,(anonymous_7)
2722
- FN:75,(anonymous_8)
2723
- FN:77,(anonymous_9)
2724
- FN:80,(anonymous_10)
2725
- FN:81,(anonymous_11)
2726
- FNF:12
2720
+ FN:49,(anonymous_6)
2721
+ FN:72,(anonymous_7)
2722
+ FN:78,(anonymous_8)
2723
+ FN:83,(anonymous_9)
2724
+ FN:85,(anonymous_10)
2725
+ FN:88,(anonymous_11)
2726
+ FN:89,(anonymous_12)
2727
+ FNF:13
2727
2728
  FNH:6
2728
2729
  FNDA:1,(anonymous_0)
2729
2730
  FNDA:11,(anonymous_1)
2730
2731
  FNDA:0,(anonymous_2)
2731
2732
  FNDA:1,(anonymous_3)
2732
2733
  FNDA:11,(anonymous_4)
2733
- FNDA:1,(anonymous_5)
2734
- FNDA:0,(anonymous_6)
2735
- FNDA:2,(anonymous_7)
2736
- FNDA:0,(anonymous_8)
2734
+ FNDA:0,(anonymous_5)
2735
+ FNDA:1,(anonymous_6)
2736
+ FNDA:0,(anonymous_7)
2737
+ FNDA:2,(anonymous_8)
2737
2738
  FNDA:0,(anonymous_9)
2738
2739
  FNDA:0,(anonymous_10)
2739
2740
  FNDA:0,(anonymous_11)
2741
+ FNDA:0,(anonymous_12)
2740
2742
  DA:1,2
2741
2743
  DA:2,2
2742
2744
  DA:3,2
@@ -2753,27 +2755,31 @@ DA:33,1
2753
2755
  DA:36,11
2754
2756
  DA:37,11
2755
2757
  DA:38,11
2756
- DA:42,1
2758
+ DA:42,0
2757
2759
  DA:43,0
2758
- DA:46,1
2759
- DA:47,1
2760
- DA:48,1
2761
- DA:52,0
2760
+ DA:44,0
2761
+ DA:46,0
2762
+ DA:50,1
2763
+ DA:51,0
2764
+ DA:54,1
2762
2765
  DA:55,1
2763
2766
  DA:56,1
2764
- DA:58,0
2765
- DA:59,0
2766
- DA:61,1
2767
- DA:65,0
2767
+ DA:60,0
2768
+ DA:63,1
2769
+ DA:64,1
2768
2770
  DA:66,0
2769
- DA:70,2
2770
- DA:71,2
2771
- DA:72,2
2772
- DA:76,0
2773
- DA:77,0
2774
- DA:80,0
2775
- DA:81,0
2776
- LF:36
2771
+ DA:67,0
2772
+ DA:69,1
2773
+ DA:73,0
2774
+ DA:74,0
2775
+ DA:78,2
2776
+ DA:79,2
2777
+ DA:80,2
2778
+ DA:84,0
2779
+ DA:85,0
2780
+ DA:88,0
2781
+ DA:89,0
2782
+ LF:40
2777
2783
  LH:25
2778
2784
  BRDA:36,0,0,11
2779
2785
  BRDA:36,0,1,11
@@ -2786,17 +2792,19 @@ BRDA:37,3,1,0
2786
2792
  BRDA:37,4,0,11
2787
2793
  BRDA:37,4,1,11
2788
2794
  BRDA:42,5,0,0
2789
- BRDA:42,5,1,1
2790
- BRDA:49,6,0,1
2791
- BRDA:49,6,1,0
2792
- BRDA:55,7,0,1
2793
- BRDA:55,7,1,0
2794
- BRDA:59,8,0,0
2795
- BRDA:59,8,1,0
2796
- BRDA:75,9,0,0
2797
- BRDA:76,10,0,0
2798
- BRDA:76,10,1,0
2799
- BRF:21
2795
+ BRDA:42,5,1,0
2796
+ BRDA:50,6,0,0
2797
+ BRDA:50,6,1,1
2798
+ BRDA:57,7,0,1
2799
+ BRDA:57,7,1,0
2800
+ BRDA:63,8,0,1
2801
+ BRDA:63,8,1,0
2802
+ BRDA:67,9,0,0
2803
+ BRDA:67,9,1,0
2804
+ BRDA:83,10,0,0
2805
+ BRDA:84,11,0,0
2806
+ BRDA:84,11,1,0
2807
+ BRF:23
2800
2808
  BRH:11
2801
2809
  end_of_record
2802
2810
  TN:
@@ -1,4 +1,4 @@
1
- import { ValidatorFunction, ValidatorFunctionAsync } from '../validation';
1
+ import { ValidatorFunction, ValidatorFunctionAsync, ValidationErrors } from '../validation';
2
2
  export declare type ValueValidator<T> = ValidatorFunction<T> | ValidatorFunctionAsync<T>;
3
3
  export declare type ValidationErrorsStrings = {
4
4
  [code: number]: string;
@@ -17,6 +17,7 @@ export declare abstract class ValidatableModel<T = string> {
17
17
  get isValid(): boolean;
18
18
  get error(): string;
19
19
  setValidationConfig(config?: ValidationConfig<T>): this;
20
+ testValidate(value: T): Promise<ValidationErrors>;
20
21
  validate(): Promise<boolean>;
21
22
  getIsInvalid(): Promise<boolean>;
22
23
  reset(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"Validatable.d.ts","sourceRoot":"","sources":["../../src/viewModels/Validatable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAqC,MAAM,eAAe,CAAC;AAG7G,oBAAY,cAAc,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;AACjF,oBAAY,uBAAuB,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAEjE,oBAAY,gBAAgB,CAAC,CAAC,IAAI;IAC9B,SAAS,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,EAAE,uBAAuB,CAAC;CACnC,CAAC;AAGF,8BAAsB,gBAAgB,CAAC,CAAC,GAAG,MAAM;IAE7C,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,QAAQ,CAAiC;IAGjD,OAAO,CAAC,MAAM,CAAgB;IAE9B,OAAO,CAAC,gBAAgB,CAAyB;gBAErC,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAKxC,SAAS,CAAC,QAAQ,KAAK,eAAe,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEtD,IAAI,OAAO,YAA2B;IAEtC,IAAI,KAAK,WAA0B;IAE5B,mBAAmB,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAMjD,QAAQ;IAuBR,YAAY;IAMlB,KAAK;WAKQ,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,UAAU,UAAO;CAQxG"}
1
+ {"version":3,"file":"Validatable.d.ts","sourceRoot":"","sources":["../../src/viewModels/Validatable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,gBAAgB,EAAmB,MAAM,eAAe,CAAC;AAG7G,oBAAY,cAAc,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;AACjF,oBAAY,uBAAuB,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAEjE,oBAAY,gBAAgB,CAAC,CAAC,IAAI;IAC9B,SAAS,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,EAAE,uBAAuB,CAAC;CACnC,CAAC;AAGF,8BAAsB,gBAAgB,CAAC,CAAC,GAAG,MAAM;IAE7C,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,QAAQ,CAAiC;IAGjD,OAAO,CAAC,MAAM,CAAgB;IAE9B,OAAO,CAAC,gBAAgB,CAAyB;gBAErC,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAKxC,SAAS,CAAC,QAAQ,KAAK,eAAe,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEtD,IAAI,OAAO,YAA2B;IAEtC,IAAI,KAAK,WAA0B;IAE5B,mBAAmB,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAM1C,YAAY,CAAC,KAAK,EAAE,CAAC;IAQ5B,QAAQ;IAuBR,YAAY;IAMlB,KAAK;WAKQ,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,UAAU,UAAO;CAQxG"}
@@ -22,6 +22,13 @@ class ValidatableModel {
22
22
  this._strings = config === null || config === void 0 ? void 0 : config.errors;
23
23
  return this;
24
24
  }
25
+ async testValidate(value) {
26
+ if (this._validator) {
27
+ const res = await this._validator(value);
28
+ return res;
29
+ }
30
+ return null;
31
+ }
25
32
  async validate() {
26
33
  if (!this._validator) {
27
34
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"Validatable.js","sourceRoot":"","sources":["../../src/viewModels/Validatable.ts"],"names":[],"mappings":";;;;AAAA,+BAA0D;AAC1D,8CAA6G;AAC7G,4CAA4C;AAU5C,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,6BAAgB,CAAC,IAAI,CAAC;AACnD,MAAsB,gBAAgB;IAUlC,YAAY,MAA4B;QARhC,eAAU,GAAgC,IAAI,CAAC;QAC/C,aAAQ,GAA4B,IAAI,CAAC;QAGzC,WAAM,GAAW,IAAI,CAAC;QAEtB,qBAAgB,GAAoB,IAAI,CAAC;QAG7C,qBAAc,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAID,IAAI,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEtC,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAE5B,mBAAmB,CAAC,MAA4B;QACnD,IAAI,CAAC,UAAU,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,KAAI,cAAc,CAAC;QACtD,IAAI,CAAC,QAAQ,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,QAAQ;QACV,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,OAAO,IAAI,CAAC;SACf;QAED,IAAI;YACA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1D,IAAI,CAAC,gBAAgB,GAAG,KAAK,KAAK,6BAAgB,CAAC,IAAI;gBACnD,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,IAAI,4BAAe,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;SACrD;QAAC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,gBAAgB,GAAG,GAAsB,CAAC;SAClD;QAED,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACtB;aAAM;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACtD;QACD,OAAO,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,YAAY;QACd,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC;IAClB,CAAC;IAGD,KAAK;QACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,YAAuD,EAAE,UAAU,GAAG,IAAI;QACjG,IAAI,UAAU,EAAE;YACZ,OAAO,kBAAS,CAAC,YAAY,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;SACpE;QAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACvE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;CACJ;AA/DG;IADC,iBAAU;;gDACmB;AAkD9B;IADC,aAAM;;;;6CAIN;AA3DL,4CAqEC"}
1
+ {"version":3,"file":"Validatable.js","sourceRoot":"","sources":["../../src/viewModels/Validatable.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zajno/common",
3
- "version": "1.3.4",
3
+ "version": "1.3.5",
4
4
  "description": "Zajno's re-usable utilities for JS/TS projects",
5
5
  "repository": {
6
6
  "type": "git",
@@ -38,6 +38,14 @@ export abstract class ValidatableModel<T = string> {
38
38
  return this;
39
39
  }
40
40
 
41
+ public async testValidate(value: T) {
42
+ if (this._validator) {
43
+ const res = await this._validator(value);
44
+ return res;
45
+ }
46
+ return null;
47
+ }
48
+
41
49
  async validate() {
42
50
  if (!this._validator) {
43
51
  return true;