@zajno/common 1.3.0 → 1.3.4

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 (158) hide show
  1. package/.github/workflows/CI.yml +8 -0
  2. package/coverage/clover.xml +466 -398
  3. package/coverage/coverage-final.json +39 -38
  4. package/coverage/lcov-report/NumberModel.ts.html +188 -0
  5. package/coverage/lcov-report/arrays.ts.html +602 -0
  6. package/coverage/lcov-report/calc.ts.html +278 -0
  7. package/coverage/lcov-report/enumHelper.ts.html +449 -0
  8. package/coverage/lcov-report/index.html +44 -44
  9. package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
  10. package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +2 -2
  11. package/coverage/lcov-report/src/async/arrays.ts.html +1 -1
  12. package/coverage/lcov-report/src/async/index.html +1 -1
  13. package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
  14. package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
  15. package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
  16. package/coverage/lcov-report/src/dates/format.ts.html +1 -1
  17. package/coverage/lcov-report/src/dates/index.html +1 -1
  18. package/coverage/lcov-report/src/dates/index.ts.html +1 -1
  19. package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
  20. package/coverage/lcov-report/src/dates/period.ts.html +1 -1
  21. package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
  22. package/coverage/lcov-report/src/dates/types.ts.html +1 -1
  23. package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
  24. package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
  25. package/coverage/lcov-report/src/event.ts.html +3 -3
  26. package/coverage/lcov-report/src/index.html +21 -21
  27. package/coverage/lcov-report/src/lazy.light.ts.html +3 -3
  28. package/coverage/lcov-report/src/logger/batch.ts.html +107 -0
  29. package/coverage/lcov-report/src/logger/console.ts.html +10 -25
  30. package/coverage/lcov-report/src/logger/index.html +54 -39
  31. package/coverage/lcov-report/src/logger/index.ts.html +88 -61
  32. package/coverage/lcov-report/src/logger/named.ts.html +31 -31
  33. package/coverage/lcov-report/src/logger/proxy.ts.html +13 -13
  34. package/coverage/lcov-report/src/math/arrays.ts.html +293 -32
  35. package/coverage/lcov-report/src/math/calc.ts.html +11 -11
  36. package/coverage/lcov-report/src/math/distribution.ts.html +2 -2
  37. package/coverage/lcov-report/src/math/index.html +11 -11
  38. package/coverage/lcov-report/src/math/index.ts.html +6 -6
  39. package/coverage/lcov-report/src/transitionObserver.ts.html +5 -5
  40. package/coverage/lcov-report/src/types.ts.html +33 -18
  41. package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
  42. package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
  43. package/coverage/lcov-report/src/validation/helpers.ts.html +1 -1
  44. package/coverage/lcov-report/src/validation/index.html +1 -1
  45. package/coverage/lcov-report/src/validation/index.ts.html +1 -1
  46. package/coverage/lcov-report/src/validation/types.ts.html +1 -1
  47. package/coverage/lcov-report/src/validation/validators.ts.html +1 -1
  48. package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
  49. package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +21 -18
  50. package/coverage/lcov-report/src/viewModels/LabeledFlagModel.ts.html +17 -26
  51. package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +136 -94
  52. package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +19 -10
  53. package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +19 -10
  54. package/coverage/lcov-report/src/viewModels/SelectViewModel.ts.html +17 -14
  55. package/coverage/lcov-report/src/viewModels/Validatable.ts.html +12 -12
  56. package/coverage/lcov-report/src/viewModels/index.html +45 -45
  57. package/coverage/lcov-report/src/viewModels/labeled.ts.html +128 -0
  58. package/coverage/lcov-report/src/viewModels/wrappers.ts.html +3 -15
  59. package/coverage/lcov-report/transitionObserver.ts.html +41 -77
  60. package/coverage/lcov.info +871 -720
  61. package/lib/event.d.ts.map +1 -1
  62. package/lib/event.js +1 -1
  63. package/lib/event.js.map +1 -1
  64. package/lib/logger/batch.d.ts +3 -0
  65. package/lib/logger/batch.d.ts.map +1 -0
  66. package/lib/logger/batch.js +12 -0
  67. package/lib/logger/batch.js.map +1 -0
  68. package/lib/logger/console.d.ts +0 -1
  69. package/lib/logger/console.d.ts.map +1 -1
  70. package/lib/logger/console.js +0 -3
  71. package/lib/logger/console.js.map +1 -1
  72. package/lib/logger/file.d.ts +15 -0
  73. package/lib/logger/file.d.ts.map +1 -0
  74. package/lib/logger/file.js +43 -0
  75. package/lib/logger/file.js.map +1 -0
  76. package/lib/logger/index.d.ts +7 -6
  77. package/lib/logger/index.d.ts.map +1 -1
  78. package/lib/logger/index.js +34 -21
  79. package/lib/logger/index.js.map +1 -1
  80. package/lib/logger/named.js +3 -3
  81. package/lib/logger/named.js.map +1 -1
  82. package/lib/logger/proxy.d.ts +1 -1
  83. package/lib/logger/proxy.d.ts.map +1 -1
  84. package/lib/logger/proxy.js +2 -2
  85. package/lib/logger/proxy.js.map +1 -1
  86. package/lib/math/arrays.d.ts +16 -0
  87. package/lib/math/arrays.d.ts.map +1 -1
  88. package/lib/math/arrays.js +77 -1
  89. package/lib/math/arrays.js.map +1 -1
  90. package/lib/transitionObserver.d.ts.map +1 -1
  91. package/lib/transitionObserver.js +2 -2
  92. package/lib/transitionObserver.js.map +1 -1
  93. package/lib/types.d.ts +4 -0
  94. package/lib/types.d.ts.map +1 -1
  95. package/lib/types.js +6 -2
  96. package/lib/types.js.map +1 -1
  97. package/lib/viewModels/FlagModel.d.ts +4 -4
  98. package/lib/viewModels/FlagModel.d.ts.map +1 -1
  99. package/lib/viewModels/FlagModel.js +1 -0
  100. package/lib/viewModels/FlagModel.js.map +1 -1
  101. package/lib/viewModels/MultiSelectModel.d.ts +9 -3
  102. package/lib/viewModels/MultiSelectModel.d.ts.map +1 -1
  103. package/lib/viewModels/MultiSelectModel.js +16 -2
  104. package/lib/viewModels/MultiSelectModel.js.map +1 -1
  105. package/lib/viewModels/NumberModel.d.ts +4 -2
  106. package/lib/viewModels/NumberModel.d.ts.map +1 -1
  107. package/lib/viewModels/NumberModel.js +1 -0
  108. package/lib/viewModels/NumberModel.js.map +1 -1
  109. package/lib/viewModels/PromptModal.d.ts.map +1 -1
  110. package/lib/viewModels/PromptModal.js +1 -1
  111. package/lib/viewModels/PromptModal.js.map +1 -1
  112. package/lib/viewModels/SelectModel.d.ts +4 -2
  113. package/lib/viewModels/SelectModel.d.ts.map +1 -1
  114. package/lib/viewModels/SelectModel.js +1 -0
  115. package/lib/viewModels/SelectModel.js.map +1 -1
  116. package/lib/viewModels/TextModel.d.ts +4 -3
  117. package/lib/viewModels/TextModel.d.ts.map +1 -1
  118. package/lib/viewModels/TextModel.js +5 -5
  119. package/lib/viewModels/TextModel.js.map +1 -1
  120. package/lib/viewModels/ValuesCollector.d.ts +1 -3
  121. package/lib/viewModels/ValuesCollector.d.ts.map +1 -1
  122. package/lib/viewModels/ValuesCollector.js.map +1 -1
  123. package/lib/viewModels/index.d.ts +1 -0
  124. package/lib/viewModels/index.d.ts.map +1 -1
  125. package/lib/viewModels/index.js +1 -0
  126. package/lib/viewModels/index.js.map +1 -1
  127. package/lib/viewModels/types.d.ts +16 -0
  128. package/lib/viewModels/types.d.ts.map +1 -0
  129. package/lib/viewModels/types.js +3 -0
  130. package/lib/viewModels/types.js.map +1 -0
  131. package/lib/viewModels/wrappers.d.ts +1 -4
  132. package/lib/viewModels/wrappers.d.ts.map +1 -1
  133. package/lib/viewModels/wrappers.js.map +1 -1
  134. package/package.json +1 -1
  135. package/src/event.ts +2 -2
  136. package/src/logger/__tests__/{index.test.ts → logger.test.ts} +97 -41
  137. package/src/logger/batch.ts +9 -0
  138. package/src/logger/console.ts +0 -5
  139. package/src/logger/file.ts +46 -0
  140. package/src/logger/index.ts +37 -28
  141. package/src/logger/named.ts +3 -3
  142. package/src/logger/proxy.ts +2 -2
  143. package/src/math/__tests__/arrays.test.ts +53 -0
  144. package/src/math/arrays.ts +87 -0
  145. package/src/transitionObserver.ts +2 -2
  146. package/src/types.ts +6 -1
  147. package/src/viewModels/FlagModel.ts +5 -4
  148. package/src/viewModels/MultiSelectModel.ts +19 -5
  149. package/src/viewModels/NumberModel.ts +5 -2
  150. package/src/viewModels/PromptModal.ts +1 -1
  151. package/src/viewModels/SelectModel.ts +5 -2
  152. package/src/viewModels/TextModel.ts +5 -4
  153. package/src/viewModels/ValuesCollector.ts +1 -4
  154. package/src/viewModels/__tests__/multiSelect.test.ts +127 -12
  155. package/src/viewModels/index.ts +1 -0
  156. package/src/viewModels/types.ts +19 -0
  157. package/src/viewModels/wrappers.ts +1 -5
  158. package/yarn-error.log +0 -3709
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">76.09% </span>
26
+ <span class="strong">73.58% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>70/92</span>
28
+ <span class='fraction'>78/106</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">66.67% </span>
33
+ <span class="strong">58.7% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>28/42</span>
35
+ <span class='fraction'>27/46</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">70% </span>
40
+ <span class="strong">68.57% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>21/30</span>
42
+ <span class='fraction'>24/35</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">74.71% </span>
47
+ <span class="strong">71.13% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>65/87</span>
49
+ <span class='fraction'>69/97</span>
50
50
  </div>
51
51
 
52
52
 
@@ -73,48 +73,63 @@
73
73
  </tr>
74
74
  </thead>
75
75
  <tbody><tr>
76
+ <td class="file high" data-value="batch.ts"><a href="batch.ts.html">batch.ts</a></td>
77
+ <td data-value="100" class="pic high">
78
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
79
+ </td>
80
+ <td data-value="100" class="pct high">100%</td>
81
+ <td data-value="8" class="abs high">8/8</td>
82
+ <td data-value="100" class="pct high">100%</td>
83
+ <td data-value="0" class="abs high">0/0</td>
84
+ <td data-value="100" class="pct high">100%</td>
85
+ <td data-value="7" class="abs high">7/7</td>
86
+ <td data-value="100" class="pct high">100%</td>
87
+ <td data-value="5" class="abs high">5/5</td>
88
+ </tr>
89
+
90
+ <tr>
76
91
  <td class="file low" data-value="console.ts"><a href="console.ts.html">console.ts</a></td>
77
- <td data-value="20" class="pic low">
78
- <div class="chart"><div class="cover-fill" style="width: 20%"></div><div class="cover-empty" style="width: 80%"></div></div>
92
+ <td data-value="16.67" class="pic low">
93
+ <div class="chart"><div class="cover-fill" style="width: 16%"></div><div class="cover-empty" style="width: 84%"></div></div>
79
94
  </td>
80
- <td data-value="20" class="pct low">20%</td>
81
- <td data-value="25" class="abs low">5/25</td>
82
- <td data-value="9.09" class="pct low">9.09%</td>
83
- <td data-value="11" class="abs low">1/11</td>
84
- <td data-value="12.5" class="pct low">12.5%</td>
85
- <td data-value="8" class="abs low">1/8</td>
86
- <td data-value="20" class="pct low">20%</td>
87
- <td data-value="25" class="abs low">5/25</td>
95
+ <td data-value="16.67" class="pct low">16.67%</td>
96
+ <td data-value="24" class="abs low">4/24</td>
97
+ <td data-value="0" class="pct low">0%</td>
98
+ <td data-value="10" class="abs low">0/10</td>
99
+ <td data-value="0" class="pct low">0%</td>
100
+ <td data-value="7" class="abs low">0/7</td>
101
+ <td data-value="16.67" class="pct low">16.67%</td>
102
+ <td data-value="24" class="abs low">4/24</td>
88
103
  </tr>
89
104
 
90
105
  <tr>
91
106
  <td class="file high" data-value="index.ts"><a href="index.ts.html">index.ts</a></td>
92
- <td data-value="100" class="pic high">
93
- <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
107
+ <td data-value="85.37" class="pic high">
108
+ <div class="chart"><div class="cover-fill" style="width: 85%"></div><div class="cover-empty" style="width: 15%"></div></div>
94
109
  </td>
95
- <td data-value="100" class="pct high">100%</td>
96
- <td data-value="31" class="abs high">31/31</td>
97
- <td data-value="100" class="pct high">100%</td>
98
- <td data-value="12" class="abs high">12/12</td>
99
- <td data-value="87.5" class="pct high">87.5%</td>
100
- <td data-value="8" class="abs high">7/8</td>
101
- <td data-value="100" class="pct high">100%</td>
102
- <td data-value="27" class="abs high">27/27</td>
110
+ <td data-value="85.37" class="pct high">85.37%</td>
111
+ <td data-value="41" class="abs high">35/41</td>
112
+ <td data-value="72.22" class="pct medium">72.22%</td>
113
+ <td data-value="18" class="abs medium">13/18</td>
114
+ <td data-value="70" class="pct medium">70%</td>
115
+ <td data-value="10" class="abs medium">7/10</td>
116
+ <td data-value="83.33" class="pct high">83.33%</td>
117
+ <td data-value="36" class="abs high">30/36</td>
103
118
  </tr>
104
119
 
105
120
  <tr>
106
121
  <td class="file high" data-value="named.ts"><a href="named.ts.html">named.ts</a></td>
107
- <td data-value="96" class="pic high">
108
- <div class="chart"><div class="cover-fill" style="width: 96%"></div><div class="cover-empty" style="width: 4%"></div></div>
122
+ <td data-value="95.45" class="pic high">
123
+ <div class="chart"><div class="cover-fill" style="width: 95%"></div><div class="cover-empty" style="width: 5%"></div></div>
109
124
  </td>
110
- <td data-value="96" class="pct high">96%</td>
111
- <td data-value="25" class="abs high">24/25</td>
125
+ <td data-value="95.45" class="pct high">95.45%</td>
126
+ <td data-value="22" class="abs high">21/22</td>
112
127
  <td data-value="91.67" class="pct high">91.67%</td>
113
128
  <td data-value="12" class="abs high">11/12</td>
114
- <td data-value="90.91" class="pct high">90.91%</td>
115
- <td data-value="11" class="abs high">10/11</td>
116
- <td data-value="95.83" class="pct high">95.83%</td>
117
- <td data-value="24" class="abs high">23/24</td>
129
+ <td data-value="87.5" class="pct high">87.5%</td>
130
+ <td data-value="8" class="abs high">7/8</td>
131
+ <td data-value="95.24" class="pct high">95.24%</td>
132
+ <td data-value="21" class="abs high">20/21</td>
118
133
  </tr>
119
134
 
120
135
  <tr>
@@ -124,8 +139,8 @@
124
139
  </td>
125
140
  <td data-value="90.91" class="pct high">90.91%</td>
126
141
  <td data-value="11" class="abs high">10/11</td>
127
- <td data-value="57.14" class="pct medium">57.14%</td>
128
- <td data-value="7" class="abs medium">4/7</td>
142
+ <td data-value="50" class="pct medium">50%</td>
143
+ <td data-value="6" class="abs medium">3/6</td>
129
144
  <td data-value="100" class="pct high">100%</td>
130
145
  <td data-value="3" class="abs high">3/3</td>
131
146
  <td data-value="90.91" class="pct high">90.91%</td>
@@ -140,7 +155,7 @@
140
155
  <div class='footer quiet pad2 space-top1 center small'>
141
156
  Code coverage generated by
142
157
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
143
- at Tue Nov 23 2021 19:51:11 GMT+0000 (Coordinated Universal Time)
158
+ at Tue Nov 30 2021 14:08:10 GMT+0000 (Coordinated Universal Time)
144
159
  </div>
145
160
  </div>
146
161
  <script src="../../prettify.js"></script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
26
+ <span class="strong">85.37% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>31/31</span>
28
+ <span class='fraction'>35/41</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">72.22% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>12/12</span>
35
+ <span class='fraction'>13/18</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">87.5% </span>
40
+ <span class="strong">70% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>7/8</span>
42
+ <span class='fraction'>7/10</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
47
+ <span class="strong">83.33% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>27/27</span>
49
+ <span class='fraction'>30/36</span>
50
50
  </div>
51
51
 
52
52
 
@@ -119,109 +119,119 @@
119
119
  <a name='L60'></a><a href='#L60'>60</a>
120
120
  <a name='L61'></a><a href='#L61'>61</a>
121
121
  <a name='L62'></a><a href='#L62'>62</a>
122
- <a name='L63'></a><a href='#L63'>63</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
122
+ <a name='L63'></a><a href='#L63'>63</a>
123
+ <a name='L64'></a><a href='#L64'>64</a>
124
+ <a name='L65'></a><a href='#L65'>65</a>
125
+ <a name='L66'></a><a href='#L66'>66</a>
126
+ <a name='L67'></a><a href='#L67'>67</a>
127
+ <a name='L68'></a><a href='#L68'>68</a>
128
+ <a name='L69'></a><a href='#L69'>69</a>
129
+ <a name='L70'></a><a href='#L70'>70</a>
130
+ <a name='L71'></a><a href='#L71'>71</a>
131
+ <a name='L72'></a><a href='#L72'>72</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
132
+ <span class="cline-any cline-neutral">&nbsp;</span>
133
+ <span class="cline-any cline-yes">2x</span>
123
134
  <span class="cline-any cline-yes">2x</span>
124
135
  <span class="cline-any cline-yes">2x</span>
125
- <span class="cline-any cline-neutral">&nbsp;</span>
126
136
  <span class="cline-any cline-yes">2x</span>
127
137
  <span class="cline-any cline-neutral">&nbsp;</span>
128
- <span class="cline-any cline-yes">9x</span>
138
+ <span class="cline-any cline-yes">2x</span>
139
+ <span class="cline-any cline-yes">5x</span>
129
140
  <span class="cline-any cline-neutral">&nbsp;</span>
130
141
  <span class="cline-any cline-neutral">&nbsp;</span>
131
142
  <span class="cline-any cline-neutral">&nbsp;</span>
132
143
  <span class="cline-any cline-neutral">&nbsp;</span>
144
+ <span class="cline-any cline-yes">2x</span>
133
145
  <span class="cline-any cline-neutral">&nbsp;</span>
134
146
  <span class="cline-any cline-yes">2x</span>
135
147
  <span class="cline-any cline-neutral">&nbsp;</span>
136
148
  <span class="cline-any cline-yes">2x</span>
149
+ <span class="cline-any cline-yes">52x</span>
150
+ <span class="cline-any cline-yes">52x</span>
151
+ <span class="cline-any cline-yes">52x</span>
152
+ <span class="cline-any cline-yes">52x</span>
137
153
  <span class="cline-any cline-neutral">&nbsp;</span>
138
154
  <span class="cline-any cline-neutral">&nbsp;</span>
139
- <span class="cline-any cline-yes">131x</span>
155
+ <span class="cline-any cline-yes">2x</span>
156
+ <span class="cline-any cline-no">&nbsp;</span>
157
+ <span class="cline-any cline-no">&nbsp;</span>
158
+ <span class="cline-any cline-no">&nbsp;</span>
159
+ <span class="cline-any cline-no">&nbsp;</span>
140
160
  <span class="cline-any cline-neutral">&nbsp;</span>
141
- <span class="cline-any cline-yes">49x</span>
161
+ <span class="cline-any cline-no">&nbsp;</span>
142
162
  <span class="cline-any cline-neutral">&nbsp;</span>
163
+ <span class="cline-any cline-no">&nbsp;</span>
143
164
  <span class="cline-any cline-neutral">&nbsp;</span>
144
165
  <span class="cline-any cline-neutral">&nbsp;</span>
145
- <span class="cline-any cline-yes">21x</span>
166
+ <span class="cline-any cline-yes">2x</span>
167
+ <span class="cline-any cline-yes">38x</span>
168
+ <span class="cline-any cline-yes">15x</span>
146
169
  <span class="cline-any cline-neutral">&nbsp;</span>
147
170
  <span class="cline-any cline-neutral">&nbsp;</span>
171
+ <span class="cline-any cline-yes">23x</span>
148
172
  <span class="cline-any cline-neutral">&nbsp;</span>
149
- <span class="cline-any cline-yes">61x</span>
150
- <span class="cline-any cline-yes">55x</span>
173
+ <span class="cline-any cline-yes">23x</span>
174
+ <span class="cline-any cline-yes">62x</span>
151
175
  <span class="cline-any cline-neutral">&nbsp;</span>
176
+ <span class="cline-any cline-yes">105x</span>
152
177
  <span class="cline-any cline-neutral">&nbsp;</span>
153
- <span class="cline-any cline-yes">6x</span>
154
178
  <span class="cline-any cline-neutral">&nbsp;</span>
155
179
  <span class="cline-any cline-neutral">&nbsp;</span>
180
+ <span class="cline-any cline-yes">29x</span>
156
181
  <span class="cline-any cline-neutral">&nbsp;</span>
182
+ <span class="cline-any cline-yes">2x</span>
157
183
  <span class="cline-any cline-neutral">&nbsp;</span>
158
184
  <span class="cline-any cline-yes">2x</span>
159
- <span class="cline-any cline-yes">39x</span>
160
- <span class="cline-any cline-yes">39x</span>
161
- <span class="cline-any cline-yes">39x</span>
162
- <span class="cline-any cline-yes">39x</span>
163
185
  <span class="cline-any cline-neutral">&nbsp;</span>
164
186
  <span class="cline-any cline-neutral">&nbsp;</span>
165
- <span class="cline-any cline-yes">2x</span>
166
- <span class="cline-any cline-yes">42x</span>
167
- <span class="cline-any cline-yes">21x</span>
187
+ <span class="cline-any cline-yes">157x</span>
188
+ <span class="cline-any cline-yes">157x</span>
168
189
  <span class="cline-any cline-neutral">&nbsp;</span>
190
+ <span class="cline-any cline-yes">71x</span>
169
191
  <span class="cline-any cline-neutral">&nbsp;</span>
170
- <span class="cline-any cline-yes">21x</span>
171
192
  <span class="cline-any cline-neutral">&nbsp;</span>
172
- <span class="cline-any cline-yes">21x</span>
173
- <span class="cline-any cline-yes">37x</span>
174
193
  <span class="cline-any cline-neutral">&nbsp;</span>
175
- <span class="cline-any cline-yes">92x</span>
194
+ <span class="cline-any cline-yes">25x</span>
176
195
  <span class="cline-any cline-neutral">&nbsp;</span>
177
196
  <span class="cline-any cline-neutral">&nbsp;</span>
178
197
  <span class="cline-any cline-neutral">&nbsp;</span>
179
- <span class="cline-any cline-yes">33x</span>
198
+ <span class="cline-any cline-yes">61x</span>
180
199
  <span class="cline-any cline-neutral">&nbsp;</span>
181
- <span class="cline-any cline-yes">2x</span>
182
200
  <span class="cline-any cline-neutral">&nbsp;</span>
183
- <span class="cline-any cline-yes">2x</span>
184
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { ILogger, LoggerFunction } from './abstractions';
201
+ <span class="cline-any cline-neutral">&nbsp;</span>
202
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { Getter } from '../types';
203
+ import { ILogger, LoggerFunction } from './abstractions';
185
204
  import { CONSOLE, ConsoleLogger } from './console';
186
- import { EMPTY_LOGGER, ProxyLogger } from './proxy';
205
+ import { ProxyLogger } from './proxy';
206
+ import { batchLoggers } from './batch';
207
+ import { removeItem } from '../math';
187
208
  &nbsp;
188
209
  export { <span class="fstat-no" title="function not covered" >NamedLogger </span>} from './named';
189
- export { ILogger, LoggerFunction };
190
- export { ConsoleLogger };
210
+ export { ILogger, LoggerFunction, <span class="fstat-no" title="function not covered" >ConsoleLogger,</span> batchLoggers };
191
211
  &nbsp;
192
212
  // TBD Introduce more logger types ?
193
213
  export type LoggerTypes = 'console';
194
- export type LoggerFactory = (() =&gt; ILogger);
195
214
  &nbsp;
196
- let Mode: LoggerTypes | false | LoggerFactory = process.env.COMMON_UTILS_LOGGER as LoggerTypes || false;
215
+ let Mode: LoggerTypes | false | Getter&lt;ILogger&gt; = process.env.COMMON_UTILS_LOGGER as LoggerTypes || false;
197
216
  &nbsp;
198
217
  const proxies: ProxyLogger[] = [];
199
218
  &nbsp;
200
- function _createImplementation(): ILogger {
201
- switch (Mode) {
202
- case 'console': {
203
- return CONSOLE;
204
- }
205
- &nbsp;
206
- case false: {
207
- return EMPTY_LOGGER;
208
- }
209
- &nbsp;
210
- default: {
211
- if (typeof Mode === 'function') {
212
- return Mode();
213
- }
219
+ export function createLogger(name: string, mode: typeof Mode = undefined): ILogger {
220
+ const result = _createImplementation(mode);
221
+ const proxy = new ProxyLogger(result, name);
222
+ proxies.push(proxy);
223
+ return proxy;
224
+ }
214
225
  &nbsp;
215
- return undefined;
226
+ export function <span class="fstat-no" title="function not covered" >detachLogger(</span>instance: ILogger, terminate = <span class="branch-0 cbranch-no" title="branch not covered" >false)</span> {
227
+ const item = <span class="cstat-no" title="statement not covered" >removeItem(proxies, instance as ProxyLogger);</span>
228
+ <span class="cstat-no" title="statement not covered" > if (item) {</span>
229
+ <span class="cstat-no" title="statement not covered" > if (terminate) {</span>
230
+ <span class="cstat-no" title="statement not covered" > item.disable();</span>
216
231
  }
232
+ <span class="cstat-no" title="statement not covered" > return true;</span>
217
233
  }
218
- }
219
- &nbsp;
220
- export function createLogger(name: string, forceDisable = false): ILogger {
221
- const result = _createImplementation();
222
- const proxy = new ProxyLogger(result, name, !forceDisable);
223
- proxies.push(proxy);
224
- return proxy;
234
+ <span class="cstat-no" title="statement not covered" > return false;</span>
225
235
  }
226
236
  &nbsp;
227
237
  export function setMode(mode: typeof Mode) {
@@ -240,9 +250,26 @@ export function setMode(mode: typeof Mode) {
240
250
  &nbsp;
241
251
  export function getMode() { return Mode; }
242
252
  &nbsp;
243
- const logger: ILogger = createLogger('', false);
253
+ const logger: ILogger = createLogger(null, false);
244
254
  &nbsp;
245
255
  export default logger;
256
+ &nbsp;
257
+ function _createImplementation(overrideMode: typeof Mode = undefined): ILogger {
258
+ const mode = overrideMode !== undefined ? overrideMode : Mode;
259
+ switch (mode) {
260
+ case 'console': {
261
+ return CONSOLE;
262
+ }
263
+ &nbsp;
264
+ case false: {
265
+ return null;
266
+ }
267
+ &nbsp;
268
+ default: {
269
+ return Getter.getValue(mode as Getter&lt;ILogger&gt;);
270
+ }
271
+ }
272
+ }
246
273
  &nbsp;</pre></td></tr></table></pre>
247
274
 
248
275
  <div class='push'></div><!-- for sticky footer -->
@@ -250,7 +277,7 @@ export default logger;
250
277
  <div class='footer quiet pad2 space-top1 center small'>
251
278
  Code coverage generated by
252
279
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
253
- at Tue Nov 23 2021 19:51:11 GMT+0000 (Coordinated Universal Time)
280
+ at Tue Nov 30 2021 14:08:10 GMT+0000 (Coordinated Universal Time)
254
281
  </div>
255
282
  </div>
256
283
  <script src="../../prettify.js"></script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">96% </span>
26
+ <span class="strong">95.45% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>24/25</span>
28
+ <span class='fraction'>21/22</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">90.91% </span>
40
+ <span class="strong">87.5% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>10/11</span>
42
+ <span class='fraction'>7/8</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">95.83% </span>
47
+ <span class="strong">95.24% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>23/24</span>
49
+ <span class='fraction'>20/21</span>
50
50
  </div>
51
51
 
52
52
 
@@ -109,46 +109,46 @@
109
109
  <span class="cline-any cline-yes">2x</span>
110
110
  <span class="cline-any cline-neutral">&nbsp;</span>
111
111
  <span class="cline-any cline-yes">2x</span>
112
- <span class="cline-any cline-yes">46x</span>
113
- <span class="cline-any cline-yes">46x</span>
114
- <span class="cline-any cline-yes">46x</span>
112
+ <span class="cline-any cline-yes">52x</span>
113
+ <span class="cline-any cline-yes">52x</span>
114
+ <span class="cline-any cline-yes">52x</span>
115
115
  <span class="cline-any cline-neutral">&nbsp;</span>
116
- <span class="cline-any cline-yes">46x</span>
116
+ <span class="cline-any cline-yes">52x</span>
117
117
  <span class="cline-any cline-neutral">&nbsp;</span>
118
118
  <span class="cline-any cline-no">&nbsp;</span>
119
119
  <span class="cline-any cline-neutral">&nbsp;</span>
120
120
  <span class="cline-any cline-neutral">&nbsp;</span>
121
121
  <span class="cline-any cline-neutral">&nbsp;</span>
122
122
  <span class="cline-any cline-neutral">&nbsp;</span>
123
- <span class="cline-any cline-yes">46x</span>
123
+ <span class="cline-any cline-yes">52x</span>
124
124
  <span class="cline-any cline-neutral">&nbsp;</span>
125
- <span class="cline-any cline-yes">46x</span>
126
- <span class="cline-any cline-yes">39x</span>
125
+ <span class="cline-any cline-yes">52x</span>
126
+ <span class="cline-any cline-yes">21x</span>
127
+ <span class="cline-any cline-neutral">&nbsp;</span>
128
+ <span class="cline-any cline-yes">31x</span>
127
129
  <span class="cline-any cline-neutral">&nbsp;</span>
128
- <span class="cline-any cline-yes">7x</span>
129
130
  <span class="cline-any cline-neutral">&nbsp;</span>
130
131
  <span class="cline-any cline-neutral">&nbsp;</span>
131
132
  <span class="cline-any cline-neutral">&nbsp;</span>
133
+ <span class="cline-any cline-yes">126x</span>
132
134
  <span class="cline-any cline-neutral">&nbsp;</span>
133
- <span class="cline-any cline-yes">131x</span>
135
+ <span class="cline-any cline-yes">126x</span>
136
+ <span class="cline-any cline-yes">7x</span>
134
137
  <span class="cline-any cline-neutral">&nbsp;</span>
135
- <span class="cline-any cline-yes">131x</span>
136
- <span class="cline-any cline-yes">9x</span>
137
- <span class="cline-any cline-yes">1x</span>
138
138
  <span class="cline-any cline-neutral">&nbsp;</span>
139
- <span class="cline-any cline-yes">131x</span>
140
- <span class="cline-any cline-yes">9x</span>
141
- <span class="cline-any cline-yes">1x</span>
139
+ <span class="cline-any cline-yes">126x</span>
140
+ <span class="cline-any cline-yes">7x</span>
141
+ <span class="cline-any cline-neutral">&nbsp;</span>
142
+ <span class="cline-any cline-neutral">&nbsp;</span>
143
+ <span class="cline-any cline-yes">126x</span>
144
+ <span class="cline-any cline-yes">7x</span>
142
145
  <span class="cline-any cline-neutral">&nbsp;</span>
143
- <span class="cline-any cline-yes">131x</span>
144
- <span class="cline-any cline-yes">9x</span>
145
- <span class="cline-any cline-yes">1x</span>
146
146
  <span class="cline-any cline-neutral">&nbsp;</span>
147
147
  <span class="cline-any cline-neutral">&nbsp;</span>
148
148
  <span class="cline-any cline-neutral">&nbsp;</span>
149
- <span class="cline-any cline-yes">44x</span>
150
- <span class="cline-any cline-yes">44x</span>
151
- <span class="cline-any cline-yes">44x</span>
149
+ <span class="cline-any cline-yes">93x</span>
150
+ <span class="cline-any cline-yes">93x</span>
151
+ <span class="cline-any cline-yes">93x</span>
152
152
  <span class="cline-any cline-neutral">&nbsp;</span>
153
153
  <span class="cline-any cline-neutral">&nbsp;</span>
154
154
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { ILogger, ILoggerSwitchable, LoggerFunction } from './abstractions';
@@ -181,15 +181,15 @@ export abstract class NamedLogger implements ILogger, ILoggerSwitchable {
181
181
  &nbsp;
182
182
  this.log = this._name
183
183
  ? (...args) =&gt; this.implementation.log(this._name, ...args)
184
- : (...args) =&gt; this.implementation.log(...args);
184
+ : this.implementation.log;
185
185
  &nbsp;
186
186
  this.warn = this._name
187
187
  ? (...args) =&gt; this.implementation.warn(this._name, ...args)
188
- : (...args) =&gt; this.implementation.warn(...args);
188
+ : this.implementation.warn;
189
189
  &nbsp;
190
190
  this.error = this._name
191
191
  ? (...args) =&gt; this.implementation.error(this._name, ...args)
192
- : (...args) =&gt; this.implementation.error(...args);
192
+ : this.implementation.error;
193
193
  }
194
194
  &nbsp;
195
195
  disable() {
@@ -205,7 +205,7 @@ export abstract class NamedLogger implements ILogger, ILoggerSwitchable {
205
205
  <div class='footer quiet pad2 space-top1 center small'>
206
206
  Code coverage generated by
207
207
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
208
- at Tue Nov 23 2021 19:51:11 GMT+0000 (Coordinated Universal Time)
208
+ at Tue Nov 30 2021 14:08:10 GMT+0000 (Coordinated Universal Time)
209
209
  </div>
210
210
  </div>
211
211
  <script src="../../prettify.js"></script>
@@ -30,9 +30,9 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">57.14% </span>
33
+ <span class="strong">50% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>4/7</span>
35
+ <span class='fraction'>3/6</span>
36
36
  </div>
37
37
 
38
38
 
@@ -97,19 +97,19 @@
97
97
  <span class="cline-any cline-neutral">&nbsp;</span>
98
98
  <span class="cline-any cline-yes">2x</span>
99
99
  <span class="cline-any cline-neutral">&nbsp;</span>
100
- <span class="cline-any cline-yes">30x</span>
100
+ <span class="cline-any cline-yes">66x</span>
101
101
  <span class="cline-any cline-neutral">&nbsp;</span>
102
- <span class="cline-any cline-yes">39x</span>
102
+ <span class="cline-any cline-yes">52x</span>
103
103
  <span class="cline-any cline-neutral">&nbsp;</span>
104
104
  <span class="cline-any cline-neutral">&nbsp;</span>
105
- <span class="cline-any cline-yes">39x</span>
106
- <span class="cline-any cline-yes">39x</span>
105
+ <span class="cline-any cline-yes">52x</span>
106
+ <span class="cline-any cline-yes">52x</span>
107
107
  <span class="cline-any cline-neutral">&nbsp;</span>
108
108
  <span class="cline-any cline-neutral">&nbsp;</span>
109
109
  <span class="cline-any cline-neutral">&nbsp;</span>
110
- <span class="cline-any cline-yes">92x</span>
111
- <span class="cline-any cline-yes">92x</span>
112
- <span class="cline-any cline-yes">92x</span>
110
+ <span class="cline-any cline-yes">105x</span>
111
+ <span class="cline-any cline-yes">105x</span>
112
+ <span class="cline-any cline-yes">105x</span>
113
113
  <span class="cline-any cline-neutral">&nbsp;</span>
114
114
  <span class="cline-any cline-no">&nbsp;</span>
115
115
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -126,12 +126,12 @@ export const EMPTY_LOGGER: ILogger = {
126
126
  &nbsp;
127
127
  export class ProxyLogger extends NamedLogger {
128
128
  &nbsp;
129
- protected get implementation() { return this._logger || EMPTY_LOGGER; }
129
+ protected get implementation() { return this._logger || <span class="branch-1 cbranch-no" title="branch not covered" >EMPTY_LOGGER;</span> }
130
130
  &nbsp;
131
131
  private _logger: ILogger = null;
132
132
  &nbsp;
133
- constructor(logger: ILogger, name?: string, enabled = <span class="branch-0 cbranch-no" title="branch not covered" >true)</span> {
134
- super(name, enabled);
133
+ constructor(logger: ILogger, name: string) {
134
+ super(name, logger != null);
135
135
  this._logger = logger;
136
136
  }
137
137
  &nbsp;
@@ -151,7 +151,7 @@ export class ProxyLogger extends NamedLogger {
151
151
  <div class='footer quiet pad2 space-top1 center small'>
152
152
  Code coverage generated by
153
153
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
154
- at Tue Nov 23 2021 19:51:11 GMT+0000 (Coordinated Universal Time)
154
+ at Tue Nov 30 2021 14:08:10 GMT+0000 (Coordinated Universal Time)
155
155
  </div>
156
156
  </div>
157
157
  <script src="../../prettify.js"></script>