@zajno/common 1.5.7 → 1.5.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/coverage/clover.xml +12 -12
- package/coverage/coverage-final.json +1 -1
- package/coverage/lcov-report/async/index.html +1 -1
- package/coverage/lcov-report/async/timeout.ts.html +1 -1
- package/coverage/lcov-report/index.html +1 -1
- package/coverage/lcov-report/logger/index.html +1 -1
- package/coverage/lcov-report/logger/index.ts.html +8 -8
- package/coverage/lcov-report/parallel.ts.html +241 -79
- package/coverage/lcov-report/queue/index.html +21 -21
- package/coverage/lcov-report/queue/parallel.ts.html +117 -27
- package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
- package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +1 -1
- package/coverage/lcov-report/src/async/arrays.ts.html +1 -1
- package/coverage/lcov-report/src/async/index.html +1 -1
- package/coverage/lcov-report/src/async/timeout.ts.html +1 -1
- package/coverage/lcov-report/src/cache.ts.html +1 -1
- package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
- package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
- package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
- package/coverage/lcov-report/src/dates/format.ts.html +1 -1
- package/coverage/lcov-report/src/dates/index.html +1 -1
- package/coverage/lcov-report/src/dates/index.ts.html +1 -1
- package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
- package/coverage/lcov-report/src/dates/period.ts.html +1 -1
- package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
- package/coverage/lcov-report/src/dates/types.ts.html +1 -1
- package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
- package/coverage/lcov-report/src/disposer.ts.html +1 -1
- package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
- package/coverage/lcov-report/src/event.ts.html +1 -1
- package/coverage/lcov-report/src/fields/index.html +1 -1
- package/coverage/lcov-report/src/fields/update.ts.html +1 -1
- package/coverage/lcov-report/src/functions.ts.html +1 -1
- package/coverage/lcov-report/src/index.html +1 -1
- package/coverage/lcov-report/src/lazy.light.ts.html +1 -1
- package/coverage/lcov-report/src/logger/batch.ts.html +1 -1
- package/coverage/lcov-report/src/logger/console.ts.html +1 -1
- package/coverage/lcov-report/src/logger/index.html +1 -1
- package/coverage/lcov-report/src/logger/index.ts.html +1 -1
- package/coverage/lcov-report/src/logger/named.ts.html +1 -1
- package/coverage/lcov-report/src/logger/proxy.ts.html +1 -1
- package/coverage/lcov-report/src/math/arrays.ts.html +1 -1
- package/coverage/lcov-report/src/math/calc.ts.html +1 -1
- package/coverage/lcov-report/src/math/distribution.ts.html +1 -1
- package/coverage/lcov-report/src/math/index.html +1 -1
- package/coverage/lcov-report/src/math/index.ts.html +1 -1
- package/coverage/lcov-report/src/observersMap.ts.html +1 -1
- package/coverage/lcov-report/src/observingCache.ts.html +1 -1
- package/coverage/lcov-report/src/queue/index.html +1 -1
- package/coverage/lcov-report/src/queue/parallel.ts.html +12 -12
- package/coverage/lcov-report/src/tempoCache.ts.html +1 -1
- package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
- package/coverage/lcov-report/src/types.ts.html +1 -1
- package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
- package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
- package/coverage/lcov-report/src/validation/helpers.ts.html +1 -1
- package/coverage/lcov-report/src/validation/index.html +1 -1
- package/coverage/lcov-report/src/validation/index.ts.html +1 -1
- package/coverage/lcov-report/src/validation/types.ts.html +1 -1
- package/coverage/lcov-report/src/validation/validators.ts.html +1 -1
- package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/CommonModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/LoadingModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/TextModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/Validatable.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/index.html +1 -1
- package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
- package/coverage/lcov.info +14 -14
- package/jest.config.js +2 -1
- package/lib/queue/parallel.js +1 -1
- package/lib/queue/parallel.js.map +1 -1
- package/package.json +2 -1
- package/src/queue/__tests__/parallel.test.ts +6 -5
- package/src/queue/parallel.ts +1 -1
- package/yarn.lock +10 -2
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">75.95% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>60/79</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">45.9% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>28/61</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">62.5% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>10/16</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">78.67% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>59/75</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
63
63
|
</div>
|
|
64
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line medium'></div>
|
|
65
65
|
<pre><table class="coverage">
|
|
66
66
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
67
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -164,7 +164,68 @@
|
|
|
164
164
|
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
165
|
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
166
|
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
-
<a name='L102'></a><a href='#L102'>102</a
|
|
167
|
+
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
+
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
+
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
+
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
+
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
+
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
+
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
+
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
+
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
+
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
+
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
+
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
+
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
+
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
+
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
+
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
+
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
+
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
+
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
+
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
+
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
+
<a name='L123'></a><a href='#L123'>123</a>
|
|
189
|
+
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
|
+
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
|
+
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
|
+
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
+
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
|
+
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
+
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
|
+
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
|
+
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
|
+
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
|
+
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
+
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
+
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
+
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
+
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
+
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
+
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
+
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
+
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
+
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
+
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
+
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
+
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
+
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
+
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
+
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
+
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
+
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
+
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
+
<a name='L156'></a><a href='#L156'>156</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
222
|
+
<span class="cline-any cline-yes">1x</span>
|
|
223
|
+
<span class="cline-any cline-neutral"> </span>
|
|
224
|
+
<span class="cline-any cline-neutral"> </span>
|
|
225
|
+
<span class="cline-any cline-neutral"> </span>
|
|
226
|
+
<span class="cline-any cline-neutral"> </span>
|
|
227
|
+
<span class="cline-any cline-neutral"> </span>
|
|
228
|
+
<span class="cline-any cline-neutral"> </span>
|
|
168
229
|
<span class="cline-any cline-neutral"> </span>
|
|
169
230
|
<span class="cline-any cline-neutral"> </span>
|
|
170
231
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -180,36 +241,47 @@
|
|
|
180
241
|
<span class="cline-any cline-neutral"> </span>
|
|
181
242
|
<span class="cline-any cline-yes">1x</span>
|
|
182
243
|
<span class="cline-any cline-neutral"> </span>
|
|
183
|
-
<span class="cline-any cline-
|
|
244
|
+
<span class="cline-any cline-yes">1x</span>
|
|
184
245
|
<span class="cline-any cline-yes">1x</span>
|
|
185
246
|
<span class="cline-any cline-neutral"> </span>
|
|
247
|
+
<span class="cline-any cline-yes">2x</span>
|
|
248
|
+
<span class="cline-any cline-yes">3x</span>
|
|
249
|
+
<span class="cline-any cline-neutral"> </span>
|
|
250
|
+
<span class="cline-any cline-no"> </span>
|
|
251
|
+
<span class="cline-any cline-no"> </span>
|
|
252
|
+
<span class="cline-any cline-neutral"> </span>
|
|
186
253
|
<span class="cline-any cline-neutral"> </span>
|
|
187
254
|
<span class="cline-any cline-yes">1x</span>
|
|
188
255
|
<span class="cline-any cline-yes">1x</span>
|
|
189
256
|
<span class="cline-any cline-neutral"> </span>
|
|
190
257
|
<span class="cline-any cline-neutral"> </span>
|
|
191
258
|
<span class="cline-any cline-neutral"> </span>
|
|
192
|
-
<span class="cline-any cline-no"> </span>
|
|
193
259
|
<span class="cline-any cline-neutral"> </span>
|
|
260
|
+
<span class="cline-any cline-yes">5x</span>
|
|
194
261
|
<span class="cline-any cline-neutral"> </span>
|
|
195
262
|
<span class="cline-any cline-neutral"> </span>
|
|
196
|
-
<span class="cline-any cline-no"> </span>
|
|
197
263
|
<span class="cline-any cline-neutral"> </span>
|
|
198
|
-
<span class="cline-any cline-
|
|
199
|
-
<span class="cline-any cline-no"> </span>
|
|
264
|
+
<span class="cline-any cline-yes">5x</span>
|
|
200
265
|
<span class="cline-any cline-neutral"> </span>
|
|
266
|
+
<span class="cline-any cline-yes">1x</span>
|
|
267
|
+
<span class="cline-any cline-yes">1x</span>
|
|
201
268
|
<span class="cline-any cline-neutral"> </span>
|
|
202
|
-
<span class="cline-any cline-no"> </span>
|
|
203
|
-
<span class="cline-any cline-no"> </span>
|
|
204
|
-
<span class="cline-any cline-no"> </span>
|
|
205
269
|
<span class="cline-any cline-neutral"> </span>
|
|
270
|
+
<span class="cline-any cline-yes">4x</span>
|
|
206
271
|
<span class="cline-any cline-neutral"> </span>
|
|
207
272
|
<span class="cline-any cline-neutral"> </span>
|
|
208
|
-
<span class="cline-any cline-
|
|
273
|
+
<span class="cline-any cline-yes">4x</span>
|
|
274
|
+
<span class="cline-any cline-yes">4x</span>
|
|
275
|
+
<span class="cline-any cline-yes">4x</span>
|
|
209
276
|
<span class="cline-any cline-no"> </span>
|
|
210
277
|
<span class="cline-any cline-neutral"> </span>
|
|
211
278
|
<span class="cline-any cline-neutral"> </span>
|
|
212
|
-
<span class="cline-any cline-
|
|
279
|
+
<span class="cline-any cline-yes">4x</span>
|
|
280
|
+
<span class="cline-any cline-yes">4x</span>
|
|
281
|
+
<span class="cline-any cline-neutral"> </span>
|
|
282
|
+
<span class="cline-any cline-neutral"> </span>
|
|
283
|
+
<span class="cline-any cline-yes">4x</span>
|
|
284
|
+
<span class="cline-any cline-neutral"> </span>
|
|
213
285
|
<span class="cline-any cline-no"> </span>
|
|
214
286
|
<span class="cline-any cline-no"> </span>
|
|
215
287
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -218,47 +290,83 @@
|
|
|
218
290
|
<span class="cline-any cline-no"> </span>
|
|
219
291
|
<span class="cline-any cline-no"> </span>
|
|
220
292
|
<span class="cline-any cline-no"> </span>
|
|
221
|
-
<span class="cline-any cline-no"> </span>
|
|
222
293
|
<span class="cline-any cline-neutral"> </span>
|
|
294
|
+
<span class="cline-any cline-no"> </span>
|
|
223
295
|
<span class="cline-any cline-neutral"> </span>
|
|
224
296
|
<span class="cline-any cline-no"> </span>
|
|
225
297
|
<span class="cline-any cline-neutral"> </span>
|
|
226
298
|
<span class="cline-any cline-neutral"> </span>
|
|
299
|
+
<span class="cline-any cline-yes">4x</span>
|
|
227
300
|
<span class="cline-any cline-neutral"> </span>
|
|
228
|
-
<span class="cline-any cline-
|
|
229
|
-
<span class="cline-any cline-no"> </span>
|
|
301
|
+
<span class="cline-any cline-yes">4x</span>
|
|
230
302
|
<span class="cline-any cline-neutral"> </span>
|
|
231
|
-
<span class="cline-any cline-no"> </span>
|
|
232
|
-
<span class="cline-any cline-no"> </span>
|
|
233
|
-
<span class="cline-any cline-no"> </span>
|
|
234
303
|
<span class="cline-any cline-neutral"> </span>
|
|
235
304
|
<span class="cline-any cline-neutral"> </span>
|
|
236
|
-
<span class="cline-any cline-
|
|
305
|
+
<span class="cline-any cline-yes">2x</span>
|
|
306
|
+
<span class="cline-any cline-yes">1x</span>
|
|
307
|
+
<span class="cline-any cline-neutral"> </span>
|
|
308
|
+
<span class="cline-any cline-neutral"> </span>
|
|
309
|
+
<span class="cline-any cline-yes">1x</span>
|
|
310
|
+
<span class="cline-any cline-yes">1x</span>
|
|
311
|
+
<span class="cline-any cline-yes">1x</span>
|
|
237
312
|
<span class="cline-any cline-neutral"> </span>
|
|
238
313
|
<span class="cline-any cline-no"> </span>
|
|
239
314
|
<span class="cline-any cline-no"> </span>
|
|
240
315
|
<span class="cline-any cline-neutral"> </span>
|
|
241
|
-
<span class="cline-any cline-no"> </span>
|
|
242
316
|
<span class="cline-any cline-neutral"> </span>
|
|
317
|
+
<span class="cline-any cline-yes">1x</span>
|
|
243
318
|
<span class="cline-any cline-neutral"> </span>
|
|
244
|
-
<span class="cline-any cline-no"> </span>
|
|
245
|
-
<span class="cline-any cline-no"> </span>
|
|
246
319
|
<span class="cline-any cline-neutral"> </span>
|
|
247
320
|
<span class="cline-any cline-neutral"> </span>
|
|
248
|
-
<span class="cline-any cline-
|
|
249
|
-
<span class="cline-any cline-
|
|
321
|
+
<span class="cline-any cline-yes">4x</span>
|
|
322
|
+
<span class="cline-any cline-yes">4x</span>
|
|
323
|
+
<span class="cline-any cline-yes">2x</span>
|
|
324
|
+
<span class="cline-any cline-yes">2x</span>
|
|
250
325
|
<span class="cline-any cline-neutral"> </span>
|
|
326
|
+
<span class="cline-any cline-neutral"> </span>
|
|
327
|
+
<span class="cline-any cline-yes">4x</span>
|
|
328
|
+
<span class="cline-any cline-neutral"> </span>
|
|
329
|
+
<span class="cline-any cline-neutral"> </span>
|
|
330
|
+
<span class="cline-any cline-neutral"> </span>
|
|
331
|
+
<span class="cline-any cline-yes">2x</span>
|
|
332
|
+
<span class="cline-any cline-yes">2x</span>
|
|
333
|
+
<span class="cline-any cline-neutral"> </span>
|
|
334
|
+
<span class="cline-any cline-yes">2x</span>
|
|
335
|
+
<span class="cline-any cline-neutral"> </span>
|
|
336
|
+
<span class="cline-any cline-yes">2x</span>
|
|
337
|
+
<span class="cline-any cline-yes">2x</span>
|
|
251
338
|
<span class="cline-any cline-no"> </span>
|
|
252
|
-
<span class="cline-any cline-no"> </span>
|
|
253
|
-
<span class="cline-any cline-no"> </span>
|
|
254
339
|
<span class="cline-any cline-neutral"> </span>
|
|
255
340
|
<span class="cline-any cline-neutral"> </span>
|
|
341
|
+
<span class="cline-any cline-yes">2x</span>
|
|
342
|
+
<span class="cline-any cline-neutral"> </span>
|
|
343
|
+
<span class="cline-any cline-yes">2x</span>
|
|
344
|
+
<span class="cline-any cline-yes">2x</span>
|
|
345
|
+
<span class="cline-any cline-neutral"> </span>
|
|
346
|
+
<span class="cline-any cline-yes">4x</span>
|
|
347
|
+
<span class="cline-any cline-neutral"> </span>
|
|
348
|
+
<span class="cline-any cline-neutral"> </span>
|
|
349
|
+
<span class="cline-any cline-yes">2x</span>
|
|
256
350
|
<span class="cline-any cline-no"> </span>
|
|
257
351
|
<span class="cline-any cline-neutral"> </span>
|
|
258
352
|
<span class="cline-any cline-neutral"> </span>
|
|
353
|
+
<span class="cline-any cline-yes">2x</span>
|
|
354
|
+
<span class="cline-any cline-neutral"> </span>
|
|
355
|
+
<span class="cline-any cline-yes">2x</span>
|
|
356
|
+
<span class="cline-any cline-yes">2x</span>
|
|
357
|
+
<span class="cline-any cline-neutral"> </span>
|
|
259
358
|
<span class="cline-any cline-yes">1x</span>
|
|
260
|
-
<span class="cline-any cline-
|
|
261
|
-
<span class="cline-any cline-
|
|
359
|
+
<span class="cline-any cline-yes">1x</span>
|
|
360
|
+
<span class="cline-any cline-yes">1x</span>
|
|
361
|
+
<span class="cline-any cline-neutral"> </span>
|
|
362
|
+
<span class="cline-any cline-neutral"> </span>
|
|
363
|
+
<span class="cline-any cline-yes">1x</span>
|
|
364
|
+
<span class="cline-any cline-yes">1x</span>
|
|
365
|
+
<span class="cline-any cline-neutral"> </span>
|
|
366
|
+
<span class="cline-any cline-neutral"> </span>
|
|
367
|
+
<span class="cline-any cline-yes">1x</span>
|
|
368
|
+
<span class="cline-any cline-yes">5x</span>
|
|
369
|
+
<span class="cline-any cline-yes">5x</span>
|
|
262
370
|
<span class="cline-any cline-neutral"> </span>
|
|
263
371
|
<span class="cline-any cline-no"> </span>
|
|
264
372
|
<span class="cline-any cline-no"> </span>
|
|
@@ -266,10 +374,17 @@
|
|
|
266
374
|
<span class="cline-any cline-neutral"> </span>
|
|
267
375
|
<span class="cline-any cline-neutral"> </span>
|
|
268
376
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { createLogger, ILogger } from '../logger';
|
|
377
|
+
import { Event } from '../event';
|
|
378
|
+
|
|
379
|
+
export type QueueItemExecutor = () => void | Promise<void>;
|
|
269
380
|
|
|
270
|
-
type
|
|
381
|
+
export type QueueItem = {
|
|
382
|
+
excecute: QueueItemExecutor,
|
|
383
|
+
key?: string,
|
|
384
|
+
cancel?: () => void,
|
|
385
|
+
};
|
|
271
386
|
|
|
272
|
-
type Queue =
|
|
387
|
+
type Queue = QueueItem[];
|
|
273
388
|
|
|
274
389
|
export class ParallelQueue {
|
|
275
390
|
|
|
@@ -281,85 +396,132 @@ export class ParallelQueue {
|
|
|
281
396
|
|
|
282
397
|
private _logger: ILogger = null;
|
|
283
398
|
|
|
284
|
-
|
|
399
|
+
private readonly _beforePriorityRun = new Event<number>();
|
|
400
|
+
private readonly _afterPriorityRun = new Event<number>();
|
|
401
|
+
|
|
402
|
+
public get currentoPriority() { return this._currentIndex; }
|
|
285
403
|
public get inProgress() { return this._inProgress; }
|
|
404
|
+
|
|
405
|
+
<span class="fstat-no" title="function not covered" > public get b</span>eforePriorityRun() { <span class="cstat-no" title="statement not covered" >return this._beforePriorityRun.expose(); </span>}
|
|
406
|
+
<span class="fstat-no" title="function not covered" > public get a</span>fterPriorityRun() { <span class="cstat-no" title="statement not covered" >return this._afterPriorityRun.expose(); </span>}
|
|
286
407
|
|
|
287
408
|
public withLogger(name?: string) {
|
|
288
409
|
this._logger = createLogger(`[Queue:${name || <span class="branch-1 cbranch-no" title="branch not covered" >'?'}</span>]`);
|
|
289
410
|
return this;
|
|
290
411
|
}
|
|
291
412
|
|
|
292
|
-
|
|
293
|
-
|
|
413
|
+
/** @returns A callback that will try to cancel queued item */
|
|
414
|
+
public enqueue(cb: QueueItemExecutor, priority?: number, key?: string): () => void {
|
|
415
|
+
const p = Math.round(priority || 0);
|
|
294
416
|
|
|
295
417
|
// if it's started and the priority has been processing already
|
|
296
418
|
// or it has just finished
|
|
297
|
-
|
|
419
|
+
if (this._inProgress && p < this._currentIndex || this._inProgress === false) {
|
|
298
420
|
// just start the loader
|
|
299
|
-
|
|
300
|
-
<span class="cstat-no" title="statement not covered" >
|
|
421
|
+
this._executeLoader(cb, p, 1000);
|
|
422
|
+
return <span class="fstat-no" title="function not covered" >() =</span>> <span class="cstat-no" title="statement not covered" >false;</span>
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
const item: QueueItem = { excecute: cb };
|
|
426
|
+
|
|
427
|
+
// Enqueue for future execution
|
|
428
|
+
const q = this.getQueue(p);
|
|
429
|
+
const existing = key && <span class="branch-1 cbranch-no" title="branch not covered" >q.find(<span class="fstat-no" title="function not covered" >qi </span>=> <span class="cstat-no" title="statement not covered" >qi.key === key)</span>;</span>
|
|
430
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (<span class="branch-1 cbranch-no" title="branch not covered" >existing?.cancel)</span> {
|
|
431
|
+
<span class="cstat-no" title="statement not covered" > existing.cancel();</span>
|
|
301
432
|
}
|
|
302
433
|
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
434
|
+
q.push(item);
|
|
435
|
+
this._maxIndex = Math.max(this._maxIndex, p);
|
|
436
|
+
|
|
437
|
+
// Return callback for removing the item from the queue
|
|
438
|
+
const cancelCallback = <span class="fstat-no" title="function not covered" >() =</span>> {
|
|
439
|
+
// The processing has started and this queue has been passed already
|
|
440
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this._inProgress != null && this._currentIndex >= p) {</span>
|
|
441
|
+
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
// find and remove the item
|
|
445
|
+
const i = <span class="cstat-no" title="statement not covered" >q.findIndex(<span class="fstat-no" title="function not covered" >qi </span>=> <span class="cstat-no" title="statement not covered" >qi === item)</span>;</span>
|
|
446
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (i >= 0) {</span>
|
|
447
|
+
<span class="cstat-no" title="statement not covered" > q.splice(i, 1);</span>
|
|
448
|
+
// return true if we're sure that the item hasn't been executed yet
|
|
449
|
+
<span class="cstat-no" title="statement not covered" > return true;</span>
|
|
450
|
+
}
|
|
451
|
+
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
452
|
+
};
|
|
453
|
+
|
|
454
|
+
item.cancel = cancelCallback;
|
|
455
|
+
|
|
456
|
+
return cancelCallback;
|
|
306
457
|
}
|
|
307
458
|
|
|
308
|
-
public
|
|
309
|
-
|
|
310
|
-
|
|
459
|
+
public async start() {
|
|
460
|
+
if (this._inProgress) {
|
|
461
|
+
return undefined;
|
|
311
462
|
}
|
|
312
463
|
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
464
|
+
this._inProgress = true;
|
|
465
|
+
try {
|
|
466
|
+
await this.tryStartQueue();
|
|
467
|
+
} catch (err) {
|
|
468
|
+
<span class="cstat-no" title="statement not covered" > this._logger?.warn('Failed to process queue:', err);</span>
|
|
469
|
+
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
return true;
|
|
316
473
|
}
|
|
317
474
|
|
|
318
|
-
private
|
|
319
|
-
let q =
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
475
|
+
private getQueue(priority: number = <span class="branch-0 cbranch-no" title="branch not covered" >0)</span> {
|
|
476
|
+
let q = this._queues[priority];
|
|
477
|
+
if (!q) {
|
|
478
|
+
q = [];
|
|
479
|
+
this._queues[priority] = q;
|
|
323
480
|
}
|
|
324
481
|
|
|
325
|
-
|
|
482
|
+
return q;
|
|
326
483
|
}
|
|
327
484
|
|
|
328
|
-
private
|
|
329
|
-
let current:
|
|
330
|
-
let iterations =
|
|
485
|
+
private async tryStartQueue() {
|
|
486
|
+
let current: QueueItem[] = null;
|
|
487
|
+
let iterations = 0;
|
|
331
488
|
|
|
332
|
-
|
|
333
|
-
|
|
489
|
+
await this._beforePriorityRun.triggerAsync(this._currentIndex);
|
|
490
|
+
|
|
491
|
+
while ((current = this._queues[this._currentIndex])<span class="branch-0 cbranch-no" title="branch not covered" >?.l</span>ength) {
|
|
492
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (iterations++ > 5) {
|
|
334
493
|
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
335
494
|
}
|
|
336
495
|
|
|
337
|
-
<span class="
|
|
496
|
+
this._logger<span class="branch-0 cbranch-no" title="branch not covered" >?.l</span>og('Processing priority =', this._currentIndex, '; count =', current.length);
|
|
338
497
|
|
|
339
|
-
const items =
|
|
340
|
-
|
|
498
|
+
const items = current.slice();
|
|
499
|
+
current.length = 0;
|
|
341
500
|
|
|
342
|
-
|
|
501
|
+
await Promise.all(items.map((item, index) => this._executeLoader(item.excecute, this._currentIndex, index)));
|
|
343
502
|
}
|
|
344
503
|
|
|
345
|
-
<span class="
|
|
504
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!current<span class="branch-0 cbranch-no" title="branch not covered" >?.l</span>ength && iterations === 0) {
|
|
346
505
|
<span class="cstat-no" title="statement not covered" > this._logger?.log('Skipping priority =', this._currentIndex, '; no items');</span>
|
|
347
506
|
}
|
|
348
507
|
|
|
349
|
-
|
|
350
|
-
|
|
508
|
+
await this._afterPriorityRun.triggerAsync(this._currentIndex);
|
|
509
|
+
|
|
510
|
+
const next = this._currentIndex + 1;
|
|
511
|
+
if (next > this._maxIndex) {
|
|
351
512
|
// looks like we've finished!
|
|
352
|
-
|
|
353
|
-
<span class="
|
|
354
|
-
|
|
513
|
+
this._inProgress = false;
|
|
514
|
+
this._logger<span class="branch-0 cbranch-no" title="branch not covered" >?.l</span>og('Finished processing at index =', this._currentIndex);
|
|
515
|
+
return;
|
|
355
516
|
}
|
|
356
517
|
|
|
357
|
-
|
|
518
|
+
++this._currentIndex;
|
|
519
|
+
await this.tryStartQueue();
|
|
358
520
|
}
|
|
359
521
|
|
|
360
|
-
private _executeLoader =
|
|
361
|
-
|
|
362
|
-
|
|
522
|
+
private _executeLoader = async (l: QueueItemExecutor, priority: number, index?: number) => {
|
|
523
|
+
try {
|
|
524
|
+
await l();
|
|
363
525
|
} catch (err) {
|
|
364
526
|
<span class="cstat-no" title="statement not covered" > this._logger?.warn('Failed to process queue item at priority =', priority, ' at index =', index || '?');</span>
|
|
365
527
|
<span class="cstat-no" title="statement not covered" > this._logger?.error(err);</span>
|
|
@@ -373,7 +535,7 @@ export class ParallelQueue {
|
|
|
373
535
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
374
536
|
Code coverage generated by
|
|
375
537
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
376
|
-
at 2022-
|
|
538
|
+
at 2022-08-16T15:15:14.658Z
|
|
377
539
|
</div>
|
|
378
540
|
<script src="prettify.js"></script>
|
|
379
541
|
<script>
|
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">76.39% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>55/72</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">44.44% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>24/
|
|
35
|
+
<span class='fraction'>24/54</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">66.67% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>10/
|
|
42
|
+
<span class='fraction'>10/15</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">78.26% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>54/69</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
63
63
|
</div>
|
|
64
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line medium'></div>
|
|
65
65
|
<div class="pad1">
|
|
66
66
|
<table class="coverage-summary">
|
|
67
67
|
<thead>
|
|
@@ -79,18 +79,18 @@
|
|
|
79
79
|
</tr>
|
|
80
80
|
</thead>
|
|
81
81
|
<tbody><tr>
|
|
82
|
-
<td class="file
|
|
83
|
-
<td data-value="
|
|
84
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
82
|
+
<td class="file medium" data-value="parallel.ts"><a href="parallel.ts.html">parallel.ts</a></td>
|
|
83
|
+
<td data-value="76.39" class="pic medium">
|
|
84
|
+
<div class="chart"><div class="cover-fill" style="width: 76%"></div><div class="cover-empty" style="width: 24%"></div></div>
|
|
85
85
|
</td>
|
|
86
|
-
<td data-value="
|
|
87
|
-
<td data-value="
|
|
88
|
-
<td data-value="
|
|
89
|
-
<td data-value="
|
|
90
|
-
<td data-value="
|
|
91
|
-
<td data-value="
|
|
92
|
-
<td data-value="
|
|
93
|
-
<td data-value="
|
|
86
|
+
<td data-value="76.39" class="pct medium">76.39%</td>
|
|
87
|
+
<td data-value="72" class="abs medium">55/72</td>
|
|
88
|
+
<td data-value="44.44" class="pct low">44.44%</td>
|
|
89
|
+
<td data-value="54" class="abs low">24/54</td>
|
|
90
|
+
<td data-value="66.67" class="pct medium">66.67%</td>
|
|
91
|
+
<td data-value="15" class="abs medium">10/15</td>
|
|
92
|
+
<td data-value="78.26" class="pct medium">78.26%</td>
|
|
93
|
+
<td data-value="69" class="abs medium">54/69</td>
|
|
94
94
|
</tr>
|
|
95
95
|
|
|
96
96
|
</tbody>
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at 2022-
|
|
104
|
+
at 2022-08-16T14:54:54.506Z
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../prettify.js"></script>
|
|
107
107
|
<script>
|