@zajno/common 1.3.0-beta → 1.3.3

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 (152) hide show
  1. package/.github/workflows/CI.yml +8 -0
  2. package/coverage/clover.xml +428 -360
  3. package/coverage/coverage-final.json +20 -19
  4. package/coverage/lcov-report/index.html +44 -44
  5. package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
  6. package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +2 -2
  7. package/coverage/lcov-report/src/async/arrays.ts.html +1 -1
  8. package/coverage/lcov-report/src/async/index.html +1 -1
  9. package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
  10. package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
  11. package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
  12. package/coverage/lcov-report/src/dates/format.ts.html +1 -1
  13. package/coverage/lcov-report/src/dates/index.html +1 -1
  14. package/coverage/lcov-report/src/dates/index.ts.html +1 -1
  15. package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
  16. package/coverage/lcov-report/src/dates/period.ts.html +1 -1
  17. package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
  18. package/coverage/lcov-report/src/dates/types.ts.html +1 -1
  19. package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
  20. package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
  21. package/coverage/lcov-report/src/event.ts.html +3 -3
  22. package/coverage/lcov-report/src/index.html +21 -21
  23. package/coverage/lcov-report/src/lazy.light.ts.html +3 -3
  24. package/coverage/lcov-report/src/logger/batch.ts.html +107 -0
  25. package/coverage/lcov-report/src/logger/console.ts.html +10 -25
  26. package/coverage/lcov-report/src/logger/index.html +54 -39
  27. package/coverage/lcov-report/src/logger/index.ts.html +88 -61
  28. package/coverage/lcov-report/src/logger/named.ts.html +31 -31
  29. package/coverage/lcov-report/src/logger/proxy.ts.html +13 -13
  30. package/coverage/lcov-report/src/math/arrays.ts.html +293 -32
  31. package/coverage/lcov-report/src/math/calc.ts.html +11 -11
  32. package/coverage/lcov-report/src/math/distribution.ts.html +2 -2
  33. package/coverage/lcov-report/src/math/index.html +11 -11
  34. package/coverage/lcov-report/src/math/index.ts.html +6 -6
  35. package/coverage/lcov-report/src/transitionObserver.ts.html +5 -5
  36. package/coverage/lcov-report/src/types.ts.html +33 -18
  37. package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
  38. package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
  39. package/coverage/lcov-report/src/validation/helpers.ts.html +1 -1
  40. package/coverage/lcov-report/src/validation/index.html +1 -1
  41. package/coverage/lcov-report/src/validation/index.ts.html +1 -1
  42. package/coverage/lcov-report/src/validation/types.ts.html +1 -1
  43. package/coverage/lcov-report/src/validation/validators.ts.html +1 -1
  44. package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
  45. package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +21 -18
  46. package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +136 -94
  47. package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +19 -10
  48. package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +19 -10
  49. package/coverage/lcov-report/src/viewModels/Validatable.ts.html +12 -12
  50. package/coverage/lcov-report/src/viewModels/index.html +45 -45
  51. package/coverage/lcov-report/src/viewModels/wrappers.ts.html +3 -15
  52. package/coverage/lcov.info +871 -720
  53. package/lib/event.d.ts.map +1 -1
  54. package/lib/event.js +1 -1
  55. package/lib/event.js.map +1 -1
  56. package/lib/logger/batch.d.ts +3 -0
  57. package/lib/logger/batch.d.ts.map +1 -0
  58. package/lib/logger/batch.js +12 -0
  59. package/lib/logger/batch.js.map +1 -0
  60. package/lib/logger/console.d.ts +0 -1
  61. package/lib/logger/console.d.ts.map +1 -1
  62. package/lib/logger/console.js +0 -3
  63. package/lib/logger/console.js.map +1 -1
  64. package/lib/logger/file.d.ts +15 -0
  65. package/lib/logger/file.d.ts.map +1 -0
  66. package/lib/logger/file.js +43 -0
  67. package/lib/logger/file.js.map +1 -0
  68. package/lib/logger/index.d.ts +7 -6
  69. package/lib/logger/index.d.ts.map +1 -1
  70. package/lib/logger/index.js +34 -21
  71. package/lib/logger/index.js.map +1 -1
  72. package/lib/logger/named.js +3 -3
  73. package/lib/logger/named.js.map +1 -1
  74. package/lib/logger/proxy.d.ts +1 -1
  75. package/lib/logger/proxy.d.ts.map +1 -1
  76. package/lib/logger/proxy.js +2 -2
  77. package/lib/logger/proxy.js.map +1 -1
  78. package/lib/math/arrays.d.ts +16 -0
  79. package/lib/math/arrays.d.ts.map +1 -1
  80. package/lib/math/arrays.js +77 -1
  81. package/lib/math/arrays.js.map +1 -1
  82. package/lib/transitionObserver.d.ts.map +1 -1
  83. package/lib/transitionObserver.js +2 -2
  84. package/lib/transitionObserver.js.map +1 -1
  85. package/lib/types.d.ts +4 -0
  86. package/lib/types.d.ts.map +1 -1
  87. package/lib/types.js +6 -2
  88. package/lib/types.js.map +1 -1
  89. package/lib/viewModels/FlagModel.d.ts +4 -4
  90. package/lib/viewModels/FlagModel.d.ts.map +1 -1
  91. package/lib/viewModels/FlagModel.js +1 -0
  92. package/lib/viewModels/FlagModel.js.map +1 -1
  93. package/lib/viewModels/MultiSelectModel.d.ts +9 -3
  94. package/lib/viewModels/MultiSelectModel.d.ts.map +1 -1
  95. package/lib/viewModels/MultiSelectModel.js +16 -2
  96. package/lib/viewModels/MultiSelectModel.js.map +1 -1
  97. package/lib/viewModels/NumberModel.d.ts +4 -2
  98. package/lib/viewModels/NumberModel.d.ts.map +1 -1
  99. package/lib/viewModels/NumberModel.js +1 -0
  100. package/lib/viewModels/NumberModel.js.map +1 -1
  101. package/lib/viewModels/{PromptModalViewModel.d.ts → PromptModal.d.ts} +1 -1
  102. package/lib/viewModels/PromptModal.d.ts.map +1 -0
  103. package/lib/viewModels/{PromptModalViewModel.js → PromptModal.js} +1 -1
  104. package/lib/viewModels/PromptModal.js.map +1 -0
  105. package/lib/viewModels/SelectModel.d.ts +4 -2
  106. package/lib/viewModels/SelectModel.d.ts.map +1 -1
  107. package/lib/viewModels/SelectModel.js +1 -0
  108. package/lib/viewModels/SelectModel.js.map +1 -1
  109. package/lib/viewModels/TextModel.d.ts +4 -3
  110. package/lib/viewModels/TextModel.d.ts.map +1 -1
  111. package/lib/viewModels/TextModel.js +5 -11
  112. package/lib/viewModels/TextModel.js.map +1 -1
  113. package/lib/viewModels/ValuesCollector.d.ts +1 -3
  114. package/lib/viewModels/ValuesCollector.d.ts.map +1 -1
  115. package/lib/viewModels/ValuesCollector.js.map +1 -1
  116. package/lib/viewModels/index.d.ts +2 -1
  117. package/lib/viewModels/index.d.ts.map +1 -1
  118. package/lib/viewModels/index.js +2 -1
  119. package/lib/viewModels/index.js.map +1 -1
  120. package/lib/viewModels/types.d.ts +16 -0
  121. package/lib/viewModels/types.d.ts.map +1 -0
  122. package/lib/viewModels/types.js +3 -0
  123. package/lib/viewModels/types.js.map +1 -0
  124. package/lib/viewModels/wrappers.d.ts +1 -4
  125. package/lib/viewModels/wrappers.d.ts.map +1 -1
  126. package/lib/viewModels/wrappers.js.map +1 -1
  127. package/package.json +1 -1
  128. package/src/event.ts +2 -2
  129. package/src/logger/__tests__/{index.test.ts → logger.test.ts} +97 -41
  130. package/src/logger/batch.ts +9 -0
  131. package/src/logger/console.ts +0 -5
  132. package/src/logger/file.ts +46 -0
  133. package/src/logger/index.ts +37 -28
  134. package/src/logger/named.ts +3 -3
  135. package/src/logger/proxy.ts +2 -2
  136. package/src/math/__tests__/arrays.test.ts +53 -0
  137. package/src/math/arrays.ts +87 -0
  138. package/src/transitionObserver.ts +2 -2
  139. package/src/types.ts +6 -1
  140. package/src/viewModels/FlagModel.ts +5 -4
  141. package/src/viewModels/MultiSelectModel.ts +19 -5
  142. package/src/viewModels/NumberModel.ts +5 -2
  143. package/src/viewModels/{PromptModalViewModel.ts → PromptModal.ts} +0 -0
  144. package/src/viewModels/SelectModel.ts +5 -2
  145. package/src/viewModels/TextModel.ts +6 -6
  146. package/src/viewModels/ValuesCollector.ts +1 -4
  147. package/src/viewModels/__tests__/multiSelect.test.ts +127 -12
  148. package/src/viewModels/index.ts +2 -1
  149. package/src/viewModels/types.ts +19 -0
  150. package/src/viewModels/wrappers.ts +1 -5
  151. package/lib/viewModels/PromptModalViewModel.d.ts.map +0 -1
  152. package/lib/viewModels/PromptModalViewModel.js.map +0 -1
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">20% </span>
26
+ <span class="strong">16.67% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>5/25</span>
28
+ <span class='fraction'>4/24</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">9.09% </span>
33
+ <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>1/11</span>
35
+ <span class='fraction'>0/10</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">12.5% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>1/8</span>
42
+ <span class='fraction'>0/7</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">20% </span>
47
+ <span class="strong">16.67% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>5/25</span>
49
+ <span class='fraction'>4/24</span>
50
50
  </div>
51
51
 
52
52
 
@@ -109,25 +109,15 @@
109
109
  <a name='L50'></a><a href='#L50'>50</a>
110
110
  <a name='L51'></a><a href='#L51'>51</a>
111
111
  <a name='L52'></a><a href='#L52'>52</a>
112
- <a name='L53'></a><a href='#L53'>53</a>
113
- <a name='L54'></a><a href='#L54'>54</a>
114
- <a name='L55'></a><a href='#L55'>55</a>
115
- <a name='L56'></a><a href='#L56'>56</a>
116
- <a name='L57'></a><a href='#L57'>57</a>
117
- <a name='L58'></a><a href='#L58'>58</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
112
+ <a name='L53'></a><a href='#L53'>53</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
118
113
  <span class="cline-any cline-yes">2x</span>
119
114
  <span class="cline-any cline-neutral">&nbsp;</span>
120
115
  <span class="cline-any cline-yes">2x</span>
121
116
  <span class="cline-any cline-neutral">&nbsp;</span>
122
117
  <span class="cline-any cline-yes">2x</span>
123
- <span class="cline-any cline-neutral">&nbsp;</span>
124
118
  <span class="cline-any cline-no">&nbsp;</span>
125
119
  <span class="cline-any cline-neutral">&nbsp;</span>
126
120
  <span class="cline-any cline-neutral">&nbsp;</span>
127
- <span class="cline-any cline-yes">7x</span>
128
- <span class="cline-any cline-neutral">&nbsp;</span>
129
- <span class="cline-any cline-neutral">&nbsp;</span>
130
- <span class="cline-any cline-neutral">&nbsp;</span>
131
121
  <span class="cline-any cline-yes">2x</span>
132
122
  <span class="cline-any cline-no">&nbsp;</span>
133
123
  <span class="cline-any cline-no">&nbsp;</span>
@@ -177,12 +167,7 @@ import { NamedLogger } from './named';
177
167
  export const CONSOLE: ILogger = console;
178
168
  &nbsp;
179
169
  export class ConsoleLogger extends NamedLogger {
180
- &nbsp;
181
170
  <span class="fstat-no" title="function not covered" > protected get i</span>mplementation() { <span class="cstat-no" title="statement not covered" >return CONSOLE; </span>}
182
- &nbsp;
183
- constructor(name?: string, enabled = true) {
184
- super(name, enabled);
185
- }
186
171
  }
187
172
  &nbsp;
188
173
  export class BufferedConsoleLogger implements ILogger {
@@ -235,7 +220,7 @@ export class BufferedConsoleLogger implements ILogger {
235
220
  <div class='footer quiet pad2 space-top1 center small'>
236
221
  Code coverage generated by
237
222
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
238
- at Mon Nov 22 2021 09:37:35 GMT+0000 (Coordinated Universal Time)
223
+ at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
239
224
  </div>
240
225
  </div>
241
226
  <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">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 Mon Nov 22 2021 09:37:35 GMT+0000 (Coordinated Universal Time)
158
+ at Mon Nov 29 2021 14:39:58 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 Mon Nov 22 2021 09:37:35 GMT+0000 (Coordinated Universal Time)
280
+ at Mon Nov 29 2021 14:39:58 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 Mon Nov 22 2021 09:37:35 GMT+0000 (Coordinated Universal Time)
208
+ at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
209
209
  </div>
210
210
  </div>
211
211
  <script src="../../prettify.js"></script>