@zajno/common 1.5.6 → 1.5.9
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 +456 -349
- package/coverage/coverage-final.json +37 -36
- package/coverage/lcov-report/async/index.html +12 -7
- package/coverage/lcov-report/async/timeout.ts.html +24 -19
- package/coverage/lcov-report/block-navigation.js +8 -0
- package/coverage/lcov-report/disposer.ts.html +376 -0
- package/coverage/lcov-report/enumHelper.ts.html +454 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +64 -44
- package/coverage/lcov-report/logger/index.html +116 -0
- package/coverage/lcov-report/logger/index.ts.html +298 -0
- package/coverage/lcov-report/parallel.ts.html +550 -0
- package/coverage/lcov-report/queue/index.html +116 -0
- package/coverage/lcov-report/queue/parallel.ts.html +499 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +26 -0
- package/coverage/lcov-report/src/__tests__/helpers/index.html +8 -3
- package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +8 -3
- package/coverage/lcov-report/src/async/arrays.ts.html +15 -10
- package/coverage/lcov-report/src/async/index.html +29 -24
- package/coverage/lcov-report/src/async/timeout.ts.html +134 -27
- package/coverage/lcov-report/src/cache.ts.html +15 -10
- package/coverage/lcov-report/src/dates/calc.ts.html +10 -5
- package/coverage/lcov-report/src/dates/convert.ts.html +9 -4
- package/coverage/lcov-report/src/dates/datex.ts.html +8 -3
- package/coverage/lcov-report/src/dates/format.ts.html +10 -5
- package/coverage/lcov-report/src/dates/index.html +19 -14
- package/coverage/lcov-report/src/dates/index.ts.html +8 -3
- package/coverage/lcov-report/src/dates/parse.ts.html +9 -4
- package/coverage/lcov-report/src/dates/period.ts.html +8 -3
- package/coverage/lcov-report/src/dates/shift.ts.html +9 -4
- package/coverage/lcov-report/src/dates/types.ts.html +8 -3
- package/coverage/lcov-report/src/dates/yearDate.ts.html +10 -5
- package/coverage/lcov-report/src/disposer.ts.html +65 -21
- package/coverage/lcov-report/src/enumHelper.ts.html +12 -7
- package/coverage/lcov-report/src/event.ts.html +98 -33
- package/coverage/lcov-report/src/fields/index.html +12 -7
- package/coverage/lcov-report/src/fields/update.ts.html +12 -7
- package/coverage/lcov-report/src/functions.ts.html +10 -5
- package/coverage/lcov-report/src/index.html +52 -47
- package/coverage/lcov-report/src/lazy.light.ts.html +9 -4
- package/coverage/lcov-report/src/logger/batch.ts.html +9 -4
- package/coverage/lcov-report/src/logger/console.ts.html +16 -11
- package/coverage/lcov-report/src/logger/index.html +13 -8
- package/coverage/lcov-report/src/logger/index.ts.html +38 -33
- package/coverage/lcov-report/src/logger/named.ts.html +26 -21
- package/coverage/lcov-report/src/logger/proxy.ts.html +20 -15
- package/coverage/lcov-report/src/math/arrays.ts.html +33 -28
- package/coverage/lcov-report/src/math/calc.ts.html +18 -13
- package/coverage/lcov-report/src/math/distribution.ts.html +10 -5
- package/coverage/lcov-report/src/math/index.html +16 -11
- package/coverage/lcov-report/src/math/index.ts.html +14 -9
- package/coverage/lcov-report/src/observersMap.ts.html +12 -7
- package/coverage/lcov-report/src/observingCache.ts.html +12 -7
- package/coverage/lcov-report/src/queue/index.html +116 -0
- package/coverage/lcov-report/src/queue/parallel.ts.html +499 -0
- package/coverage/lcov-report/src/tempoCache.ts.html +9 -4
- package/coverage/lcov-report/src/transitionObserver.ts.html +14 -9
- package/coverage/lcov-report/src/types.ts.html +13 -8
- package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +8 -3
- package/coverage/lcov-report/src/validation/creditCard.ts.html +8 -3
- package/coverage/lcov-report/src/validation/helpers.ts.html +13 -8
- package/coverage/lcov-report/src/validation/index.html +11 -6
- package/coverage/lcov-report/src/validation/index.ts.html +8 -3
- package/coverage/lcov-report/src/validation/types.ts.html +8 -3
- package/coverage/lcov-report/src/validation/validators.ts.html +8 -3
- package/coverage/lcov-report/src/validation/wrappers.ts.html +8 -3
- package/coverage/lcov-report/src/viewModels/CommonModel.ts.html +10 -5
- package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +8 -3
- package/coverage/lcov-report/src/viewModels/LoadingModel.ts.html +10 -5
- package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +13 -8
- package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +8 -3
- package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +10 -5
- package/coverage/lcov-report/src/viewModels/TextModel.ts.html +13 -8
- package/coverage/lcov-report/src/viewModels/Validatable.ts.html +12 -7
- package/coverage/lcov-report/src/viewModels/index.html +22 -17
- package/coverage/lcov-report/src/viewModels/wrappers.ts.html +8 -3
- package/coverage/lcov.info +565 -483
- package/jest.config.js +2 -1
- package/lib/async/arrays.extend.js +4 -4
- package/lib/async/arrays.extend.js.map +1 -1
- package/lib/async/timeout.d.ts +5 -0
- package/lib/async/timeout.d.ts.map +1 -1
- package/lib/async/timeout.js +30 -1
- package/lib/async/timeout.js.map +1 -1
- package/lib/cache.js +6 -6
- package/lib/cache.js.map +1 -1
- package/lib/dates/calc.js +7 -7
- package/lib/dates/calc.js.map +1 -1
- package/lib/dates/convert.js +11 -11
- package/lib/dates/convert.js.map +1 -1
- package/lib/dates/format.js +6 -6
- package/lib/dates/format.js.map +1 -1
- package/lib/dates/period.js +2 -2
- package/lib/dates/period.js.map +1 -1
- package/lib/dates/shift.js +5 -5
- package/lib/dates/shift.js.map +1 -1
- package/lib/dates/yearDate.js +2 -2
- package/lib/dates/yearDate.js.map +1 -1
- package/lib/disposer.d.ts +4 -2
- package/lib/disposer.d.ts.map +1 -1
- package/lib/disposer.js +10 -5
- package/lib/disposer.js.map +1 -1
- package/lib/enumHelper.d.ts +2 -2
- package/lib/enumHelper.d.ts.map +1 -1
- package/lib/enumHelper.js.map +1 -1
- package/lib/event.d.ts +2 -0
- package/lib/event.d.ts.map +1 -1
- package/lib/event.js +20 -3
- package/lib/event.js.map +1 -1
- package/lib/fields/update.js +2 -2
- package/lib/fields/update.js.map +1 -1
- package/lib/lazy.d.ts +2 -0
- package/lib/lazy.d.ts.map +1 -1
- package/lib/lazy.js +8 -3
- package/lib/lazy.js.map +1 -1
- package/lib/logger/file.js.map +1 -1
- package/lib/logger/index.d.ts +1 -1
- package/lib/logger/index.d.ts.map +1 -1
- package/lib/logger/index.js +1 -1
- package/lib/logger/index.js.map +1 -1
- package/lib/math/arrays.js +2 -2
- package/lib/math/arrays.js.map +1 -1
- package/lib/models/EntityWithStatus.js.map +1 -1
- package/lib/observersMap.js +2 -2
- package/lib/observersMap.js.map +1 -1
- package/lib/observingCache.js +1 -1
- package/lib/observingCache.js.map +1 -1
- package/lib/pool.js +1 -1
- package/lib/pool.js.map +1 -1
- package/lib/queue/parallel.d.ts +22 -0
- package/lib/queue/parallel.d.ts.map +1 -0
- package/lib/queue/parallel.js +117 -0
- package/lib/queue/parallel.js.map +1 -0
- package/lib/services/localization/LocalizationManager.js +1 -1
- package/lib/services/localization/LocalizationManager.js.map +1 -1
- package/lib/services/storage/web/localStorage.js +1 -1
- package/lib/services/storage/web/localStorage.js.map +1 -1
- package/lib/services/storage/web/sessionStorage.js +1 -1
- package/lib/services/storage/web/sessionStorage.js.map +1 -1
- package/lib/transitionObserver.js +3 -3
- package/lib/transitionObserver.js.map +1 -1
- package/lib/validation/wrappers.js +1 -1
- package/lib/validation/wrappers.js.map +1 -1
- package/lib/viewModels/CommonModel.js +1 -1
- package/lib/viewModels/CommonModel.js.map +1 -1
- package/lib/viewModels/FlagModel.js +1 -1
- package/lib/viewModels/FlagModel.js.map +1 -1
- package/lib/viewModels/MultiSelectModel.js +5 -5
- package/lib/viewModels/MultiSelectModel.js.map +1 -1
- package/lib/viewModels/NumberModel.js +1 -1
- package/lib/viewModels/NumberModel.js.map +1 -1
- package/lib/viewModels/PromptModal.js +1 -1
- package/lib/viewModels/PromptModal.js.map +1 -1
- package/lib/viewModels/SelectModel.js +4 -4
- package/lib/viewModels/SelectModel.js.map +1 -1
- package/lib/viewModels/TextModel.js +3 -3
- package/lib/viewModels/TextModel.js.map +1 -1
- package/lib/viewModels/Validatable.js +3 -3
- package/lib/viewModels/Validatable.js.map +1 -1
- package/lib/viewModels/ValueModel.js +1 -1
- package/lib/viewModels/ValueModel.js.map +1 -1
- package/package.json +11 -11
- package/src/.DS_Store +0 -0
- package/src/async/__tests__/timeout.test.ts +74 -0
- package/src/async/timeout.ts +34 -0
- package/src/disposer.ts +19 -6
- package/src/enumHelper.ts +2 -2
- package/src/event.ts +20 -0
- package/src/lazy.ts +8 -1
- package/src/queue/__tests__/parallel.test.ts +58 -0
- package/src/queue/parallel.ts +138 -0
- package/src/services/storage/web/localStorage.ts +1 -1
- package/src/services/storage/web/sessionStorage.ts +1 -1
- package/yarn.lock +1074 -1441
|
@@ -24,6 +24,31 @@ var addSorting = (function() {
|
|
|
24
24
|
return getTableHeader().querySelectorAll('th')[n];
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
function onFilterInput() {
|
|
28
|
+
const searchValue = document.getElementById('fileSearch').value;
|
|
29
|
+
const rows = document.getElementsByTagName('tbody')[0].children;
|
|
30
|
+
for (let i = 0; i < rows.length; i++) {
|
|
31
|
+
const row = rows[i];
|
|
32
|
+
if (
|
|
33
|
+
row.textContent
|
|
34
|
+
.toLowerCase()
|
|
35
|
+
.includes(searchValue.toLowerCase())
|
|
36
|
+
) {
|
|
37
|
+
row.style.display = '';
|
|
38
|
+
} else {
|
|
39
|
+
row.style.display = 'none';
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// loads the search box
|
|
45
|
+
function addSearchBox() {
|
|
46
|
+
var template = document.getElementById('filterTemplate');
|
|
47
|
+
var templateClone = template.content.cloneNode(true);
|
|
48
|
+
templateClone.getElementById('fileSearch').oninput = onFilterInput;
|
|
49
|
+
template.parentElement.appendChild(templateClone);
|
|
50
|
+
}
|
|
51
|
+
|
|
27
52
|
// loads all columns
|
|
28
53
|
function loadColumns() {
|
|
29
54
|
var colNodes = getTableHeader().querySelectorAll('th'),
|
|
@@ -162,6 +187,7 @@ var addSorting = (function() {
|
|
|
162
187
|
}
|
|
163
188
|
cols = loadColumns();
|
|
164
189
|
loadData();
|
|
190
|
+
addSearchBox();
|
|
165
191
|
addSortIndicators();
|
|
166
192
|
enableUI();
|
|
167
193
|
};
|
|
@@ -54,6 +54,12 @@
|
|
|
54
54
|
<p class="quiet">
|
|
55
55
|
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
56
|
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input oninput="onInput()" type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
57
63
|
</div>
|
|
58
64
|
<div class='status-line high'></div>
|
|
59
65
|
<div class="pad1">
|
|
@@ -94,10 +100,9 @@
|
|
|
94
100
|
</div><!-- /wrapper -->
|
|
95
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
96
102
|
Code coverage generated by
|
|
97
|
-
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
98
|
-
at
|
|
103
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
+
at 2022-09-08T13:27:57.517Z
|
|
99
105
|
</div>
|
|
100
|
-
</div>
|
|
101
106
|
<script src="../../../prettify.js"></script>
|
|
102
107
|
<script>
|
|
103
108
|
window.onload = function () {
|
|
@@ -54,6 +54,12 @@
|
|
|
54
54
|
<p class="quiet">
|
|
55
55
|
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
56
|
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input oninput="onInput()" type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
57
63
|
</div>
|
|
58
64
|
<div class='status-line high'></div>
|
|
59
65
|
<pre><table class="coverage">
|
|
@@ -99,10 +105,9 @@ export const toArbitrary = (fakerGen) => {
|
|
|
99
105
|
</div><!-- /wrapper -->
|
|
100
106
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
101
107
|
Code coverage generated by
|
|
102
|
-
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
103
|
-
at
|
|
108
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
109
|
+
at 2022-09-08T13:27:57.517Z
|
|
104
110
|
</div>
|
|
105
|
-
</div>
|
|
106
111
|
<script src="../../../prettify.js"></script>
|
|
107
112
|
<script>
|
|
108
113
|
window.onload = function () {
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
33
|
<span class="strong">0% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>0/
|
|
35
|
+
<span class='fraction'>0/2</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -54,6 +54,12 @@
|
|
|
54
54
|
<p class="quiet">
|
|
55
55
|
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
56
|
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input oninput="onInput()" type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
57
63
|
</div>
|
|
58
64
|
<div class='status-line low'></div>
|
|
59
65
|
<pre><table class="coverage">
|
|
@@ -97,7 +103,7 @@
|
|
|
97
103
|
<a name='L38'></a><a href='#L38'>38</a>
|
|
98
104
|
<a name='L39'></a><a href='#L39'>39</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
99
105
|
<span class="cline-any cline-neutral"> </span>
|
|
100
|
-
<span class="cline-any cline-yes">
|
|
106
|
+
<span class="cline-any cline-yes">6x</span>
|
|
101
107
|
<span class="cline-any cline-no"> </span>
|
|
102
108
|
<span class="cline-any cline-no"> </span>
|
|
103
109
|
<span class="cline-any cline-no"> </span>
|
|
@@ -108,7 +114,7 @@
|
|
|
108
114
|
<span class="cline-any cline-no"> </span>
|
|
109
115
|
<span class="cline-any cline-neutral"> </span>
|
|
110
116
|
<span class="cline-any cline-neutral"> </span>
|
|
111
|
-
<span class="cline-any cline-yes">
|
|
117
|
+
<span class="cline-any cline-yes">6x</span>
|
|
112
118
|
<span class="cline-any cline-no"> </span>
|
|
113
119
|
<span class="cline-any cline-no"> </span>
|
|
114
120
|
<span class="cline-any cline-no"> </span>
|
|
@@ -119,13 +125,13 @@
|
|
|
119
125
|
<span class="cline-any cline-no"> </span>
|
|
120
126
|
<span class="cline-any cline-neutral"> </span>
|
|
121
127
|
<span class="cline-any cline-neutral"> </span>
|
|
122
|
-
<span class="cline-any cline-yes">
|
|
128
|
+
<span class="cline-any cline-yes">6x</span>
|
|
123
129
|
<span class="cline-any cline-no"> </span>
|
|
124
130
|
<span class="cline-any cline-no"> </span>
|
|
125
131
|
<span class="cline-any cline-neutral"> </span>
|
|
126
132
|
<span class="cline-any cline-neutral"> </span>
|
|
127
133
|
<span class="cline-any cline-neutral"> </span>
|
|
128
|
-
<span class="cline-any cline-yes">
|
|
134
|
+
<span class="cline-any cline-yes">6x</span>
|
|
129
135
|
<span class="cline-any cline-no"> </span>
|
|
130
136
|
<span class="cline-any cline-no"> </span>
|
|
131
137
|
<span class="cline-any cline-no"> </span>
|
|
@@ -138,7 +144,7 @@
|
|
|
138
144
|
export async function <span class="fstat-no" title="function not covered" >someAsync<</span>T>(target: ReadonlyArray<T>, condition: (v: T, index?: number, arr?: ReadonlyArray<T>) => Promise<boolean>): Promise<boolean> {
|
|
139
145
|
<span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0;</span> i < target.length; ++i) {</span>
|
|
140
146
|
const ok = <span class="cstat-no" title="statement not covered" >await condition(target[i], i, target);</span>
|
|
141
|
-
<span class="cstat-no" title="statement not covered" > if (ok) {</span>
|
|
147
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (ok) {</span>
|
|
142
148
|
<span class="cstat-no" title="statement not covered" > return true;</span>
|
|
143
149
|
}
|
|
144
150
|
}
|
|
@@ -149,7 +155,7 @@ export async function <span class="fstat-no" title="function not covered" >someA
|
|
|
149
155
|
export async function <span class="fstat-no" title="function not covered" >everyAsync<</span>T>(target: ReadonlyArray<T>, condition: (v: T, index?: number, arr?: ReadonlyArray<T>) => Promise<boolean>): Promise<boolean> {
|
|
150
156
|
<span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0;</span> i < target.length; ++i) {</span>
|
|
151
157
|
const ok = <span class="cstat-no" title="statement not covered" >await condition(target[i], i, target);</span>
|
|
152
|
-
<span class="cstat-no" title="statement not covered" > if (!ok) {</span>
|
|
158
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!ok) {</span>
|
|
153
159
|
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
154
160
|
}
|
|
155
161
|
}
|
|
@@ -177,10 +183,9 @@ export async function <span class="fstat-no" title="function not covered" >mapAs
|
|
|
177
183
|
</div><!-- /wrapper -->
|
|
178
184
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
179
185
|
Code coverage generated by
|
|
180
|
-
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
181
|
-
at
|
|
186
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
187
|
+
at 2022-09-08T13:27:57.517Z
|
|
182
188
|
</div>
|
|
183
|
-
</div>
|
|
184
189
|
<script src="../../prettify.js"></script>
|
|
185
190
|
<script>
|
|
186
191
|
window.onload = function () {
|
|
@@ -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">50% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>36/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">43.75% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>7/16</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">55.56% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>10/18</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">51.52% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>34/66</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -54,8 +54,14 @@
|
|
|
54
54
|
<p class="quiet">
|
|
55
55
|
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
56
|
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input oninput="onInput()" type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
57
63
|
</div>
|
|
58
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line medium'></div>
|
|
59
65
|
<div class="pad1">
|
|
60
66
|
<table class="coverage-summary">
|
|
61
67
|
<thead>
|
|
@@ -80,7 +86,7 @@
|
|
|
80
86
|
<td data-value="16" class="pct low">16%</td>
|
|
81
87
|
<td data-value="25" class="abs low">4/25</td>
|
|
82
88
|
<td data-value="0" class="pct low">0%</td>
|
|
83
|
-
<td data-value="
|
|
89
|
+
<td data-value="2" class="abs low">0/2</td>
|
|
84
90
|
<td data-value="0" class="pct low">0%</td>
|
|
85
91
|
<td data-value="4" class="abs low">0/4</td>
|
|
86
92
|
<td data-value="19.05" class="pct low">19.05%</td>
|
|
@@ -88,18 +94,18 @@
|
|
|
88
94
|
</tr>
|
|
89
95
|
|
|
90
96
|
<tr>
|
|
91
|
-
<td class="file
|
|
92
|
-
<td data-value="
|
|
93
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
97
|
+
<td class="file medium" data-value="timeout.ts"><a href="timeout.ts.html">timeout.ts</a></td>
|
|
98
|
+
<td data-value="68.09" class="pic medium">
|
|
99
|
+
<div class="chart"><div class="cover-fill" style="width: 68%"></div><div class="cover-empty" style="width: 32%"></div></div>
|
|
94
100
|
</td>
|
|
95
|
-
<td data-value="
|
|
96
|
-
<td data-value="
|
|
97
|
-
<td data-value="
|
|
98
|
-
<td data-value="
|
|
99
|
-
<td data-value="
|
|
100
|
-
<td data-value="
|
|
101
|
-
<td data-value="
|
|
102
|
-
<td data-value="
|
|
101
|
+
<td data-value="68.09" class="pct medium">68.09%</td>
|
|
102
|
+
<td data-value="47" class="abs medium">32/47</td>
|
|
103
|
+
<td data-value="50" class="pct medium">50%</td>
|
|
104
|
+
<td data-value="14" class="abs medium">7/14</td>
|
|
105
|
+
<td data-value="71.43" class="pct medium">71.43%</td>
|
|
106
|
+
<td data-value="14" class="abs medium">10/14</td>
|
|
107
|
+
<td data-value="66.67" class="pct medium">66.67%</td>
|
|
108
|
+
<td data-value="45" class="abs medium">30/45</td>
|
|
103
109
|
</tr>
|
|
104
110
|
|
|
105
111
|
</tbody>
|
|
@@ -109,10 +115,9 @@
|
|
|
109
115
|
</div><!-- /wrapper -->
|
|
110
116
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
111
117
|
Code coverage generated by
|
|
112
|
-
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
113
|
-
at
|
|
118
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
119
|
+
at 2022-09-08T13:27:57.517Z
|
|
114
120
|
</div>
|
|
115
|
-
</div>
|
|
116
121
|
<script src="../../prettify.js"></script>
|
|
117
122
|
<script>
|
|
118
123
|
window.onload = function () {
|
|
@@ -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">68.09% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>32/47</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">50% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>7/14</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">71.43% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>10/14</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">66.67% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>30/45</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -54,8 +54,14 @@
|
|
|
54
54
|
<p class="quiet">
|
|
55
55
|
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
56
|
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input oninput="onInput()" type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
57
63
|
</div>
|
|
58
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line medium'></div>
|
|
59
65
|
<pre><table class="coverage">
|
|
60
66
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
61
67
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -107,22 +113,56 @@
|
|
|
107
113
|
<a name='L48'></a><a href='#L48'>48</a>
|
|
108
114
|
<a name='L49'></a><a href='#L49'>49</a>
|
|
109
115
|
<a name='L50'></a><a href='#L50'>50</a>
|
|
110
|
-
<a name='L51'></a><a href='#L51'>51</a
|
|
111
|
-
<
|
|
112
|
-
<
|
|
116
|
+
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
+
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
+
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
+
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
+
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
+
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
+
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
+
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
+
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
+
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
+
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
+
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
+
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
+
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
+
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
+
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
+
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
+
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
+
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
+
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
+
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
+
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
+
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
+
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
+
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
+
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
+
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
+
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
+
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
+
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
+
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
+
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
+
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
+
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
+
<a name='L85'></a><a href='#L85'>85</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
151
|
+
<span class="cline-any cline-yes">5x</span>
|
|
152
|
+
<span class="cline-any cline-yes">16x</span>
|
|
113
153
|
<span class="cline-any cline-neutral"> </span>
|
|
114
154
|
<span class="cline-any cline-neutral"> </span>
|
|
115
|
-
<span class="cline-any cline-yes">
|
|
116
|
-
<span class="cline-any cline-yes">
|
|
117
|
-
<span class="cline-any cline-yes">
|
|
118
|
-
<span class="cline-any cline-yes">
|
|
119
|
-
<span class="cline-any cline-yes">
|
|
120
|
-
<span class="cline-any cline-yes">
|
|
155
|
+
<span class="cline-any cline-yes">16x</span>
|
|
156
|
+
<span class="cline-any cline-yes">16x</span>
|
|
157
|
+
<span class="cline-any cline-yes">16x</span>
|
|
158
|
+
<span class="cline-any cline-yes">16x</span>
|
|
159
|
+
<span class="cline-any cline-yes">16x</span>
|
|
160
|
+
<span class="cline-any cline-yes">16x</span>
|
|
121
161
|
<span class="cline-any cline-neutral"> </span>
|
|
122
162
|
<span class="cline-any cline-neutral"> </span>
|
|
123
163
|
<span class="cline-any cline-neutral"> </span>
|
|
124
164
|
<span class="cline-any cline-neutral"> </span>
|
|
125
|
-
<span class="cline-any cline-yes">
|
|
165
|
+
<span class="cline-any cline-yes">16x</span>
|
|
126
166
|
<span class="cline-any cline-no"> </span>
|
|
127
167
|
<span class="cline-any cline-no"> </span>
|
|
128
168
|
<span class="cline-any cline-no"> </span>
|
|
@@ -133,12 +173,12 @@
|
|
|
133
173
|
<span class="cline-any cline-no"> </span>
|
|
134
174
|
<span class="cline-any cline-neutral"> </span>
|
|
135
175
|
<span class="cline-any cline-neutral"> </span>
|
|
136
|
-
<span class="cline-any cline-yes">
|
|
176
|
+
<span class="cline-any cline-yes">16x</span>
|
|
137
177
|
<span class="cline-any cline-neutral"> </span>
|
|
138
178
|
<span class="cline-any cline-neutral"> </span>
|
|
139
179
|
<span class="cline-any cline-neutral"> </span>
|
|
140
180
|
<span class="cline-any cline-neutral"> </span>
|
|
141
|
-
<span class="cline-any cline-yes">
|
|
181
|
+
<span class="cline-any cline-yes">5x</span>
|
|
142
182
|
<span class="cline-any cline-no"> </span>
|
|
143
183
|
<span class="cline-any cline-no"> </span>
|
|
144
184
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -157,6 +197,40 @@
|
|
|
157
197
|
<span class="cline-any cline-no"> </span>
|
|
158
198
|
<span class="cline-any cline-neutral"> </span>
|
|
159
199
|
<span class="cline-any cline-neutral"> </span>
|
|
200
|
+
<span class="cline-any cline-neutral"> </span>
|
|
201
|
+
<span class="cline-any cline-yes">5x</span>
|
|
202
|
+
<span class="cline-any cline-yes">3x</span>
|
|
203
|
+
<span class="cline-any cline-neutral"> </span>
|
|
204
|
+
<span class="cline-any cline-yes">3x</span>
|
|
205
|
+
<span class="cline-any cline-yes">3x</span>
|
|
206
|
+
<span class="cline-any cline-yes">3x</span>
|
|
207
|
+
<span class="cline-any cline-yes">4x</span>
|
|
208
|
+
<span class="cline-any cline-yes">1x</span>
|
|
209
|
+
<span class="cline-any cline-neutral"> </span>
|
|
210
|
+
<span class="cline-any cline-neutral"> </span>
|
|
211
|
+
<span class="cline-any cline-yes">3x</span>
|
|
212
|
+
<span class="cline-any cline-neutral"> </span>
|
|
213
|
+
<span class="cline-any cline-yes">4x</span>
|
|
214
|
+
<span class="cline-any cline-yes">3x</span>
|
|
215
|
+
<span class="cline-any cline-neutral"> </span>
|
|
216
|
+
<span class="cline-any cline-yes">3x</span>
|
|
217
|
+
<span class="cline-any cline-yes">3x</span>
|
|
218
|
+
<span class="cline-any cline-yes">1x</span>
|
|
219
|
+
<span class="cline-any cline-neutral"> </span>
|
|
220
|
+
<span class="cline-any cline-yes">2x</span>
|
|
221
|
+
<span class="cline-any cline-neutral"> </span>
|
|
222
|
+
<span class="cline-any cline-neutral"> </span>
|
|
223
|
+
<span class="cline-any cline-neutral"> </span>
|
|
224
|
+
<span class="cline-any cline-yes">3x</span>
|
|
225
|
+
<span class="cline-any cline-yes">1x</span>
|
|
226
|
+
<span class="cline-any cline-neutral"> </span>
|
|
227
|
+
<span class="cline-any cline-neutral"> </span>
|
|
228
|
+
<span class="cline-any cline-yes">3x</span>
|
|
229
|
+
<span class="cline-any cline-yes">3x</span>
|
|
230
|
+
<span class="cline-any cline-yes">3x</span>
|
|
231
|
+
<span class="cline-any cline-neutral"> </span>
|
|
232
|
+
<span class="cline-any cline-neutral"> </span>
|
|
233
|
+
<span class="cline-any cline-neutral"> </span>
|
|
160
234
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">
|
|
161
235
|
export function setTimeoutAsync(ms: number, useCancel: (cb: () => void) => void = null) {
|
|
162
236
|
let canceled = false;
|
|
@@ -166,7 +240,7 @@ export function setTimeoutAsync(ms: number, useCancel: (cb: () => void) =>
|
|
|
166
240
|
_reject = reject;
|
|
167
241
|
token = setTimeout(() => {
|
|
168
242
|
_reject = null;
|
|
169
|
-
|
|
243
|
+
if (!canceled) {
|
|
170
244
|
resolve();
|
|
171
245
|
}
|
|
172
246
|
}, ms);
|
|
@@ -176,7 +250,7 @@ export function setTimeoutAsync(ms: number, useCancel: (cb: () => void) =>
|
|
|
176
250
|
const cancelCb = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
177
251
|
<span class="cstat-no" title="statement not covered" > clearTimeout(token);</span>
|
|
178
252
|
<span class="cstat-no" title="statement not covered" > canceled = true;</span>
|
|
179
|
-
<span class="cstat-no" title="statement not covered" > if (_reject) {</span>
|
|
253
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (_reject) {</span>
|
|
180
254
|
<span class="cstat-no" title="statement not covered" > _reject();</span>
|
|
181
255
|
}
|
|
182
256
|
};
|
|
@@ -189,7 +263,7 @@ export function setTimeoutAsync(ms: number, useCancel: (cb: () => void) =>
|
|
|
189
263
|
/* global requestAnimationFrame */
|
|
190
264
|
|
|
191
265
|
export function <span class="fstat-no" title="function not covered" >setTimeoutFramesAsync(</span>frames: number) {
|
|
192
|
-
<span class="cstat-no" title="statement not covered" > if (typeof requestAnimationFrame === 'undefined') {</span>
|
|
266
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof requestAnimationFrame === 'undefined') {</span>
|
|
193
267
|
<span class="cstat-no" title="statement not covered" > throw new Error('setTimeoutFramesAsync is not supported because "requestAnimationFrame" is not defined.');</span>
|
|
194
268
|
}
|
|
195
269
|
|
|
@@ -207,16 +281,49 @@ export function <span class="fstat-no" title="function not covered" >setTimeoutF
|
|
|
207
281
|
<span class="cstat-no" title="statement not covered" > cb();</span>
|
|
208
282
|
});
|
|
209
283
|
}
|
|
284
|
+
|
|
285
|
+
export function timeoutPromise<T>(p: Promise<T>, timeoutMs: number, waitForMinElapsed?: number): Promise<{ resolved: T, timedOut?: boolean, elapsed: number }> {
|
|
286
|
+
const started = Date.now();
|
|
287
|
+
|
|
288
|
+
return new Promise((resolve, reject) => {
|
|
289
|
+
let finished = false;
|
|
290
|
+
const finish = (res: T, timedOut: boolean) => {
|
|
291
|
+
if (finished) {
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
finished = true;
|
|
296
|
+
|
|
297
|
+
const getElapsed = () => (Date.now() - started);
|
|
298
|
+
const doFinish = () => resolve({ resolved: res, timedOut: timedOut, elapsed: getElapsed() });
|
|
299
|
+
|
|
300
|
+
const left = waitForMinElapsed != null ? (waitForMinElapsed - getElapsed()) : -1;
|
|
301
|
+
if (left >= 0) {
|
|
302
|
+
setTimeout(doFinish, left);
|
|
303
|
+
} else {
|
|
304
|
+
doFinish();
|
|
305
|
+
}
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
const timeoutRef = setTimeout(() => {
|
|
309
|
+
finish(undefined, true);
|
|
310
|
+
}, timeoutMs);
|
|
311
|
+
|
|
312
|
+
p.then(res => {
|
|
313
|
+
clearTimeout(timeoutRef);
|
|
314
|
+
finish(res, false);
|
|
315
|
+
}).catch(reject);
|
|
316
|
+
});
|
|
317
|
+
}
|
|
210
318
|
</pre></td></tr></table></pre>
|
|
211
319
|
|
|
212
320
|
<div class='push'></div><!-- for sticky footer -->
|
|
213
321
|
</div><!-- /wrapper -->
|
|
214
322
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
215
323
|
Code coverage generated by
|
|
216
|
-
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
217
|
-
at
|
|
324
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
325
|
+
at 2022-09-08T13:27:57.517Z
|
|
218
326
|
</div>
|
|
219
|
-
</div>
|
|
220
327
|
<script src="../../prettify.js"></script>
|
|
221
328
|
<script>
|
|
222
329
|
window.onload = function () {
|
|
@@ -30,9 +30,9 @@
|
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">60.53% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>23/38</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -54,6 +54,12 @@
|
|
|
54
54
|
<p class="quiet">
|
|
55
55
|
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
56
|
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input oninput="onInput()" type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
57
63
|
</div>
|
|
58
64
|
<div class='status-line high'></div>
|
|
59
65
|
<pre><table class="coverage">
|
|
@@ -476,11 +482,11 @@ export class PromiseCache<T, K = string> {
|
|
|
476
482
|
<span class="cstat-no" title="statement not covered" > throw new Error('PromiseCache: null keys are not supported');</span>
|
|
477
483
|
}
|
|
478
484
|
|
|
479
|
-
|
|
485
|
+
if (typeof k === 'string') {
|
|
480
486
|
return k;
|
|
481
487
|
}
|
|
482
488
|
|
|
483
|
-
<span class="cstat-no" title="statement not covered" > if (!this.keyAdapter) {</span>
|
|
489
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!this.keyAdapter) {</span>
|
|
484
490
|
<span class="cstat-no" title="statement not covered" > throw new Error('Provide key adapter for non-string keys');</span>
|
|
485
491
|
}
|
|
486
492
|
|
|
@@ -509,7 +515,7 @@ export class PromiseCache<T, K = string> {
|
|
|
509
515
|
getCurrent(id: K, initiateFetch = true): T {
|
|
510
516
|
const key = this._pk(id);
|
|
511
517
|
const item = this._itemsCache[key];
|
|
512
|
-
|
|
518
|
+
if (initiateFetch) {
|
|
513
519
|
this.get(id);
|
|
514
520
|
}
|
|
515
521
|
this._logger<span class="branch-1 cbranch-no" title="branch not covered" ><span class="branch-1 cbranch-no" title="branch not covered" >?.l</span>og(key, 'getCurrent returns', item);</span>
|
|
@@ -541,7 +547,7 @@ export class PromiseCache<T, K = string> {
|
|
|
541
547
|
try {
|
|
542
548
|
this._busyCount.increment();
|
|
543
549
|
const res = await this.fetcher(id);
|
|
544
|
-
|
|
550
|
+
if (this._fetchCache[key]) {
|
|
545
551
|
this._logger<span class="branch-1 cbranch-no" title="branch not covered" ><span class="branch-1 cbranch-no" title="branch not covered" >?.l</span>og(key, 'item\'s <promise> resolved to', res);</span>
|
|
546
552
|
const result = res
|
|
547
553
|
? (this._observeItems ? <span class="branch-0 cbranch-no" title="branch not covered" >observable.object(res) </span>: res)
|
|
@@ -578,7 +584,7 @@ export class PromiseCache<T, K = string> {
|
|
|
578
584
|
}
|
|
579
585
|
|
|
580
586
|
<span class="fstat-no" title="function not covered" > keysParsed(</span>) {
|
|
581
|
-
<span class="cstat-no" title="statement not covered" > if (!this.keyParser) {</span>
|
|
587
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!this.keyParser) {</span>
|
|
582
588
|
<span class="cstat-no" title="statement not covered" > return null;</span>
|
|
583
589
|
}
|
|
584
590
|
|
|
@@ -606,10 +612,9 @@ function _setX<T>(key: string, obj: Record<string, T>, val: T) {
|
|
|
606
612
|
</div><!-- /wrapper -->
|
|
607
613
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
608
614
|
Code coverage generated by
|
|
609
|
-
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
610
|
-
at
|
|
615
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
616
|
+
at 2022-09-08T13:27:57.517Z
|
|
611
617
|
</div>
|
|
612
|
-
</div>
|
|
613
618
|
<script src="../prettify.js"></script>
|
|
614
619
|
<script>
|
|
615
620
|
window.onload = function () {
|