@picgo/store 2.1.0 → 2.2.1

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 (53) hide show
  1. package/.eslintrc.json +6 -2
  2. package/.husky/commit-msg +1 -0
  3. package/.husky/pre-commit +1 -0
  4. package/.node-version +1 -0
  5. package/CHANGELOG.md +19 -0
  6. package/coverage/base.css +224 -0
  7. package/coverage/block-navigation.js +87 -0
  8. package/coverage/favicon.png +0 -0
  9. package/coverage/index.html +161 -0
  10. package/coverage/lcov-report/block-navigation.js +9 -1
  11. package/coverage/lcov-report/favicon.png +0 -0
  12. package/coverage/lcov-report/index.html +33 -27
  13. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  14. package/coverage/lcov-report/sorter.js +40 -0
  15. package/coverage/lcov-report/src/DBStore.ts.html +29 -23
  16. package/coverage/lcov-report/src/JSONStore.ts.html +19 -13
  17. package/coverage/lcov-report/src/adapters/JSONAdapter.ts.html +19 -13
  18. package/coverage/lcov-report/src/adapters/ZlibAdapter.ts.html +35 -32
  19. package/coverage/lcov-report/src/adapters/index.html +27 -21
  20. package/coverage/lcov-report/src/index.html +24 -18
  21. package/coverage/lcov-report/src/types/index.html +12 -6
  22. package/coverage/lcov-report/src/types/index.ts.html +11 -5
  23. package/coverage/lcov-report/src/utils/index.html +14 -8
  24. package/coverage/lcov-report/src/utils/metaInfoHelper.ts.html +19 -10
  25. package/coverage/lcov.info +147 -142
  26. package/coverage/prettify.css +1 -0
  27. package/coverage/prettify.js +2 -0
  28. package/coverage/sort-arrow-sprite.png +0 -0
  29. package/coverage/sorter.js +210 -0
  30. package/coverage/src/DBStore.ts.html +592 -0
  31. package/coverage/src/JSONStore.ts.html +241 -0
  32. package/coverage/src/adapters/JSONAdapter.ts.html +205 -0
  33. package/coverage/src/adapters/ZlibAdapter.ts.html +316 -0
  34. package/coverage/src/adapters/index.html +131 -0
  35. package/coverage/src/index.html +131 -0
  36. package/coverage/src/types/index.html +116 -0
  37. package/coverage/src/types/index.ts.html +229 -0
  38. package/coverage/src/utils/index.html +116 -0
  39. package/coverage/src/utils/metaInfoHelper.ts.html +229 -0
  40. package/dist/DBStore.d.ts +29 -29
  41. package/dist/JSONStore.d.ts +12 -12
  42. package/dist/adapters/JSONAdapter.d.ts +8 -8
  43. package/dist/adapters/ZlibAdapter.d.ts +10 -10
  44. package/dist/index.d.ts +3 -3
  45. package/dist/index.js +1 -1
  46. package/dist/types/index.d.ts +40 -40
  47. package/dist/utils/metaInfoHelper.d.ts +3 -3
  48. package/package.json +28 -27
  49. package/rollup.config.js +1 -1
  50. package/vitest.config.ts +14 -0
  51. package/coverage/clover.xml +0 -226
  52. package/coverage/coverage-final.json +0 -7
  53. package/jest.config.js +0 -6
@@ -7,7 +7,8 @@
7
7
  <meta charset="utf-8" />
8
8
  <link rel="stylesheet" href="prettify.css" />
9
9
  <link rel="stylesheet" href="base.css" />
10
- <meta name="viewport" content="width=device-width, initial-scale=1">
10
+ <link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
11
12
  <style type='text/css'>
12
13
  .coverage-summary .sorter {
13
14
  background-image: url(sort-arrow-sprite.png);
@@ -22,30 +23,30 @@
22
23
  <div class='clearfix'>
23
24
 
24
25
  <div class='fl pad1y space-right2'>
25
- <span class="strong">100% </span>
26
+ <span class="strong">97.39% </span>
26
27
  <span class="quiet">Statements</span>
27
- <span class='fraction'>195/195</span>
28
+ <span class='fraction'>187/192</span>
28
29
  </div>
29
30
 
30
31
 
31
32
  <div class='fl pad1y space-right2'>
32
- <span class="strong">100% </span>
33
+ <span class="strong">94.04% </span>
33
34
  <span class="quiet">Branches</span>
34
- <span class='fraction'>74/74</span>
35
+ <span class='fraction'>79/84</span>
35
36
  </div>
36
37
 
37
38
 
38
39
  <div class='fl pad1y space-right2'>
39
40
  <span class="strong">100% </span>
40
41
  <span class="quiet">Functions</span>
41
- <span class='fraction'>45/45</span>
42
+ <span class='fraction'>47/47</span>
42
43
  </div>
43
44
 
44
45
 
45
46
  <div class='fl pad1y space-right2'>
46
- <span class="strong">100% </span>
47
+ <span class="strong">98.34% </span>
47
48
  <span class="quiet">Lines</span>
48
- <span class='fraction'>190/190</span>
49
+ <span class='fraction'>178/181</span>
49
50
  </div>
50
51
 
51
52
 
@@ -53,6 +54,12 @@
53
54
  <p class="quiet">
54
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.
55
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
56
63
  </div>
57
64
  <div class='status-line high'></div>
58
65
  <div class="pad1">
@@ -77,28 +84,28 @@
77
84
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
78
85
  </td>
79
86
  <td data-value="100" class="pct high">100%</td>
80
- <td data-value="104" class="abs high">104/104</td>
81
- <td data-value="100" class="pct high">100%</td>
82
- <td data-value="41" class="abs high">41/41</td>
87
+ <td data-value="102" class="abs high">102/102</td>
88
+ <td data-value="93.47" class="pct high">93.47%</td>
89
+ <td data-value="46" class="abs high">43/46</td>
83
90
  <td data-value="100" class="pct high">100%</td>
84
- <td data-value="24" class="abs high">24/24</td>
91
+ <td data-value="26" class="abs high">26/26</td>
85
92
  <td data-value="100" class="pct high">100%</td>
86
- <td data-value="102" class="abs high">102/102</td>
93
+ <td data-value="98" class="abs high">98/98</td>
87
94
  </tr>
88
95
 
89
96
  <tr>
90
97
  <td class="file high" data-value="src/adapters"><a href="src/adapters/index.html">src/adapters</a></td>
91
- <td data-value="100" class="pic high">
92
- <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
98
+ <td data-value="90" class="pic high">
99
+ <div class="chart"><div class="cover-fill" style="width: 90%"></div><div class="cover-empty" style="width: 10%"></div></div>
93
100
  </td>
94
- <td data-value="100" class="pct high">100%</td>
95
- <td data-value="51" class="abs high">51/51</td>
96
- <td data-value="100" class="pct high">100%</td>
97
- <td data-value="11" class="abs high">11/11</td>
101
+ <td data-value="90" class="pct high">90%</td>
102
+ <td data-value="50" class="abs high">45/50</td>
103
+ <td data-value="87.5" class="pct high">87.5%</td>
104
+ <td data-value="16" class="abs high">14/16</td>
98
105
  <td data-value="100" class="pct high">100%</td>
99
106
  <td data-value="11" class="abs high">11/11</td>
100
- <td data-value="100" class="pct high">100%</td>
101
- <td data-value="51" class="abs high">51/51</td>
107
+ <td data-value="93.75" class="pct high">93.75%</td>
108
+ <td data-value="48" class="abs high">45/48</td>
102
109
  </tr>
103
110
 
104
111
  <tr>
@@ -107,7 +114,7 @@
107
114
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
108
115
  </td>
109
116
  <td data-value="100" class="pct high">100%</td>
110
- <td data-value="10" class="abs high">10/10</td>
117
+ <td data-value="12" class="abs high">12/12</td>
111
118
  <td data-value="100" class="pct high">100%</td>
112
119
  <td data-value="4" class="abs high">4/4</td>
113
120
  <td data-value="100" class="pct high">100%</td>
@@ -122,13 +129,13 @@
122
129
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
123
130
  </td>
124
131
  <td data-value="100" class="pct high">100%</td>
125
- <td data-value="30" class="abs high">30/30</td>
132
+ <td data-value="28" class="abs high">28/28</td>
126
133
  <td data-value="100" class="pct high">100%</td>
127
134
  <td data-value="18" class="abs high">18/18</td>
128
135
  <td data-value="100" class="pct high">100%</td>
129
136
  <td data-value="8" class="abs high">8/8</td>
130
137
  <td data-value="100" class="pct high">100%</td>
131
- <td data-value="27" class="abs high">27/27</td>
138
+ <td data-value="25" class="abs high">25/25</td>
132
139
  </tr>
133
140
 
134
141
  </tbody>
@@ -138,10 +145,9 @@
138
145
  </div><!-- /wrapper -->
139
146
  <div class='footer quiet pad2 space-top1 center small'>
140
147
  Code coverage generated by
141
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
142
- at Sun Sep 10 2023 05:10:07 GMT+0000 (Coordinated Universal Time)
148
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
149
+ at 2026-01-05T10:05:12.285Z
143
150
  </div>
144
- </div>
145
151
  <script src="prettify.js"></script>
146
152
  <script>
147
153
  window.onload = function () {
@@ -24,6 +24,45 @@ 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
+
31
+ // Try to create a RegExp from the searchValue. If it fails (invalid regex),
32
+ // it will be treated as a plain text search
33
+ let searchRegex;
34
+ try {
35
+ searchRegex = new RegExp(searchValue, 'i'); // 'i' for case-insensitive
36
+ } catch (error) {
37
+ searchRegex = null;
38
+ }
39
+
40
+ for (let i = 0; i < rows.length; i++) {
41
+ const row = rows[i];
42
+ let isMatch = false;
43
+
44
+ if (searchRegex) {
45
+ // If a valid regex was created, use it for matching
46
+ isMatch = searchRegex.test(row.textContent);
47
+ } else {
48
+ // Otherwise, fall back to the original plain text search
49
+ isMatch = row.textContent
50
+ .toLowerCase()
51
+ .includes(searchValue.toLowerCase());
52
+ }
53
+
54
+ row.style.display = isMatch ? '' : 'none';
55
+ }
56
+ }
57
+
58
+ // loads the search box
59
+ function addSearchBox() {
60
+ var template = document.getElementById('filterTemplate');
61
+ var templateClone = template.content.cloneNode(true);
62
+ templateClone.getElementById('fileSearch').oninput = onFilterInput;
63
+ template.parentElement.appendChild(templateClone);
64
+ }
65
+
27
66
  // loads all columns
28
67
  function loadColumns() {
29
68
  var colNodes = getTableHeader().querySelectorAll('th'),
@@ -162,6 +201,7 @@ var addSorting = (function() {
162
201
  }
163
202
  cols = loadColumns();
164
203
  loadData();
204
+ addSearchBox();
165
205
  addSortIndicators();
166
206
  enableUI();
167
207
  };
@@ -7,7 +7,8 @@
7
7
  <meta charset="utf-8" />
8
8
  <link rel="stylesheet" href="../prettify.css" />
9
9
  <link rel="stylesheet" href="../base.css" />
10
- <meta name="viewport" content="width=device-width, initial-scale=1">
10
+ <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
11
12
  <style type='text/css'>
12
13
  .coverage-summary .sorter {
13
14
  background-image: url(../sort-arrow-sprite.png);
@@ -24,28 +25,28 @@
24
25
  <div class='fl pad1y space-right2'>
25
26
  <span class="strong">100% </span>
26
27
  <span class="quiet">Statements</span>
27
- <span class='fraction'>82/82</span>
28
+ <span class='fraction'>83/83</span>
28
29
  </div>
29
30
 
30
31
 
31
32
  <div class='fl pad1y space-right2'>
32
- <span class="strong">100% </span>
33
+ <span class="strong">94.73% </span>
33
34
  <span class="quiet">Branches</span>
34
- <span class='fraction'>34/34</span>
35
+ <span class='fraction'>36/38</span>
35
36
  </div>
36
37
 
37
38
 
38
39
  <div class='fl pad1y space-right2'>
39
40
  <span class="strong">100% </span>
40
41
  <span class="quiet">Functions</span>
41
- <span class='fraction'>17/17</span>
42
+ <span class='fraction'>19/19</span>
42
43
  </div>
43
44
 
44
45
 
45
46
  <div class='fl pad1y space-right2'>
46
47
  <span class="strong">100% </span>
47
48
  <span class="quiet">Lines</span>
48
- <span class='fraction'>80/80</span>
49
+ <span class='fraction'>79/79</span>
49
50
  </div>
50
51
 
51
52
 
@@ -53,6 +54,12 @@
53
54
  <p class="quiet">
54
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.
55
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
56
63
  </div>
57
64
  <div class='status-line high'></div>
58
65
  <pre><table class="coverage">
@@ -229,10 +236,10 @@
229
236
  <span class="cline-any cline-neutral">&nbsp;</span>
230
237
  <span class="cline-any cline-neutral">&nbsp;</span>
231
238
  <span class="cline-any cline-neutral">&nbsp;</span>
232
- <span class="cline-any cline-yes">1x</span>
233
- <span class="cline-any cline-yes">1x</span>
234
- <span class="cline-any cline-yes">1x</span>
235
- <span class="cline-any cline-yes">1x</span>
239
+ <span class="cline-any cline-neutral">&nbsp;</span>
240
+ <span class="cline-any cline-neutral">&nbsp;</span>
241
+ <span class="cline-any cline-neutral">&nbsp;</span>
242
+ <span class="cline-any cline-neutral">&nbsp;</span>
236
243
  <span class="cline-any cline-neutral">&nbsp;</span>
237
244
  <span class="cline-any cline-neutral">&nbsp;</span>
238
245
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -286,7 +293,7 @@
286
293
  <span class="cline-any cline-neutral">&nbsp;</span>
287
294
  <span class="cline-any cline-neutral">&nbsp;</span>
288
295
  <span class="cline-any cline-neutral">&nbsp;</span>
289
- <span class="cline-any cline-neutral">&nbsp;</span>
296
+ <span class="cline-any cline-yes">39x</span>
290
297
  <span class="cline-any cline-neutral">&nbsp;</span>
291
298
  <span class="cline-any cline-neutral">&nbsp;</span>
292
299
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -295,7 +302,7 @@
295
302
  <span class="cline-any cline-neutral">&nbsp;</span>
296
303
  <span class="cline-any cline-neutral">&nbsp;</span>
297
304
  <span class="cline-any cline-neutral">&nbsp;</span>
298
- <span class="cline-any cline-neutral">&nbsp;</span>
305
+ <span class="cline-any cline-yes">20x</span>
299
306
  <span class="cline-any cline-neutral">&nbsp;</span>
300
307
  <span class="cline-any cline-neutral">&nbsp;</span>
301
308
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -309,7 +316,6 @@
309
316
  <span class="cline-any cline-yes">1x</span>
310
317
  <span class="cline-any cline-yes">12x</span>
311
318
  <span class="cline-any cline-yes">12x</span>
312
- <span class="cline-any cline-neutral">&nbsp;</span>
313
319
  <span class="cline-any cline-yes">12x</span>
314
320
  <span class="cline-any cline-yes">1x</span>
315
321
  <span class="cline-any cline-yes">1x</span>
@@ -337,7 +343,7 @@
337
343
  <span class="cline-any cline-yes">3x</span>
338
344
  <span class="cline-any cline-yes">3x</span>
339
345
  <span class="cline-any cline-neutral">&nbsp;</span>
340
- <span class="cline-any cline-neutral">&nbsp;</span>
346
+ <span class="cline-any cline-yes">5x</span>
341
347
  <span class="cline-any cline-yes">2x</span>
342
348
  <span class="cline-any cline-yes">2x</span>
343
349
  <span class="cline-any cline-yes">2x</span>
@@ -356,7 +362,7 @@
356
362
  <span class="cline-any cline-yes">3x</span>
357
363
  <span class="cline-any cline-yes">2x</span>
358
364
  <span class="cline-any cline-neutral">&nbsp;</span>
359
- <span class="cline-any cline-neutral">&nbsp;</span>
365
+ <span class="cline-any cline-yes">3x</span>
360
366
  <span class="cline-any cline-yes">2x</span>
361
367
  <span class="cline-any cline-neutral">&nbsp;</span>
362
368
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -378,6 +384,7 @@
378
384
  <span class="cline-any cline-yes">2x</span>
379
385
  <span class="cline-any cline-yes">2x</span>
380
386
  <span class="cline-any cline-yes">1x</span>
387
+ <span class="cline-any cline-neutral">&nbsp;</span>
381
388
  <span class="cline-any cline-yes">1x</span>
382
389
  <span class="cline-any cline-yes">1x</span>
383
390
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -392,7 +399,7 @@
392
399
  <span class="cline-any cline-neutral">&nbsp;</span>
393
400
  <span class="cline-any cline-neutral">&nbsp;</span>
394
401
  <span class="cline-any cline-neutral">&nbsp;</span>
395
- <span class="cline-any cline-yes">1x</span>
402
+ <span class="cline-any cline-neutral">&nbsp;</span>
396
403
  <span class="cline-any cline-neutral">&nbsp;</span>
397
404
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/* eslint-disable no-return-await */
398
405
  /* eslint-disable @typescript-eslint/no-floating-promises */
@@ -478,9 +485,8 @@ class DBStore {
478
485
  async insert&lt;T&gt; (value: T, writable = true): Promise&lt;IResult&lt;T&gt;&gt; {
479
486
  const id = (value as IResult&lt;T&gt;).id
480
487
  const result = await this.getCollectionKey(id)
481
- // @ts-ignore
482
488
  if (result) {
483
- await this.updateById(id, value)
489
+ await this.updateById(id, value as IResult&lt;T&gt;)
484
490
  return (value as IResult&lt;T&gt;)
485
491
  }
486
492
  (await this.getCollection()).push(value as IResult&lt;T&gt;)
@@ -506,7 +512,7 @@ class DBStore {
506
512
  const result = await this.getCollectionKey(id)
507
513
  if (result) {
508
514
  /* istanbul ignore next */
509
- const item = collection.find(item =&gt; item.id === id) || {}
515
+ const item = collection.find(item =&gt; item.id === id) ?? <span class="branch-1 cbranch-no" title="branch not covered" >{}</span>
510
516
  Object.assign(item, value)
511
517
  await this.db.write()
512
518
  return true
@@ -525,7 +531,7 @@ class DBStore {
525
531
  if (result) {
526
532
  successCount++
527
533
  /* istanbul ignore next */
528
- const target = collection.find(t =&gt; t.id === item.id) || {}
534
+ const target = collection.find(t =&gt; t.id === item.id) ?? <span class="branch-1 cbranch-no" title="branch not covered" >{}</span>
529
535
  Object.assign(target, item)
530
536
  }
531
537
  }
@@ -547,6 +553,7 @@ class DBStore {
547
553
  const index = collection.findIndex(item =&gt; item.id === id)
548
554
  if (index !== -1) {
549
555
  collection.splice(index, 1)
556
+ // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
550
557
  delete collectionKeyMap[id]
551
558
  await this.db.write()
552
559
  }
@@ -569,10 +576,9 @@ export {
569
576
  </div><!-- /wrapper -->
570
577
  <div class='footer quiet pad2 space-top1 center small'>
571
578
  Code coverage generated by
572
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
573
- at Sun Sep 10 2023 05:10:07 GMT+0000 (Coordinated Universal Time)
579
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
580
+ at 2026-01-05T10:05:12.285Z
574
581
  </div>
575
- </div>
576
582
  <script src="../prettify.js"></script>
577
583
  <script>
578
584
  window.onload = function () {
@@ -7,7 +7,8 @@
7
7
  <meta charset="utf-8" />
8
8
  <link rel="stylesheet" href="../prettify.css" />
9
9
  <link rel="stylesheet" href="../base.css" />
10
- <meta name="viewport" content="width=device-width, initial-scale=1">
10
+ <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
11
12
  <style type='text/css'>
12
13
  .coverage-summary .sorter {
13
14
  background-image: url(../sort-arrow-sprite.png);
@@ -24,14 +25,14 @@
24
25
  <div class='fl pad1y space-right2'>
25
26
  <span class="strong">100% </span>
26
27
  <span class="quiet">Statements</span>
27
- <span class='fraction'>22/22</span>
28
+ <span class='fraction'>19/19</span>
28
29
  </div>
29
30
 
30
31
 
31
32
  <div class='fl pad1y space-right2'>
32
- <span class="strong">100% </span>
33
+ <span class="strong">87.5% </span>
33
34
  <span class="quiet">Branches</span>
34
- <span class='fraction'>7/7</span>
35
+ <span class='fraction'>7/8</span>
35
36
  </div>
36
37
 
37
38
 
@@ -45,7 +46,7 @@
45
46
  <div class='fl pad1y space-right2'>
46
47
  <span class="strong">100% </span>
47
48
  <span class="quiet">Lines</span>
48
- <span class='fraction'>22/22</span>
49
+ <span class='fraction'>19/19</span>
49
50
  </div>
50
51
 
51
52
 
@@ -53,6 +54,12 @@
53
54
  <p class="quiet">
54
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.
55
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
56
63
  </div>
57
64
  <div class='status-line high'></div>
58
65
  <pre><table class="coverage">
@@ -108,12 +115,12 @@
108
115
  <a name='L50'></a><a href='#L50'>50</a>
109
116
  <a name='L51'></a><a href='#L51'>51</a>
110
117
  <a name='L52'></a><a href='#L52'>52</a>
111
- <a name='L53'></a><a href='#L53'>53</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
112
- <span class="cline-any cline-yes">1x</span>
113
- <span class="cline-any cline-yes">1x</span>
118
+ <a name='L53'></a><a href='#L53'>53</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
114
119
  <span class="cline-any cline-neutral">&nbsp;</span>
115
120
  <span class="cline-any cline-neutral">&nbsp;</span>
116
121
  <span class="cline-any cline-neutral">&nbsp;</span>
122
+ <span class="cline-any cline-neutral">&nbsp;</span>
123
+ <span class="cline-any cline-yes">9x</span>
117
124
  <span class="cline-any cline-yes">9x</span>
118
125
  <span class="cline-any cline-neutral">&nbsp;</span>
119
126
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -158,7 +165,7 @@
158
165
  <span class="cline-any cline-neutral">&nbsp;</span>
159
166
  <span class="cline-any cline-neutral">&nbsp;</span>
160
167
  <span class="cline-any cline-neutral">&nbsp;</span>
161
- <span class="cline-any cline-yes">1x</span>
168
+ <span class="cline-any cline-neutral">&nbsp;</span>
162
169
  <span class="cline-any cline-neutral">&nbsp;</span>
163
170
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { LowSync } from '@commonify/lowdb'
164
171
  import { JSONAdapter } from './adapters/JSONAdapter'
@@ -182,7 +189,7 @@ class JSONStore {
182
189
  &nbsp;
183
190
  read (flush = false): IJSON {
184
191
  /* istanbul ignore else */
185
- if (flush || !this.hasRead) {
192
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (flush || !this.hasRead) {
186
193
  this.hasRead = true
187
194
  this.db.read()
188
195
  }
@@ -218,10 +225,9 @@ export {
218
225
  </div><!-- /wrapper -->
219
226
  <div class='footer quiet pad2 space-top1 center small'>
220
227
  Code coverage generated by
221
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
222
- at Sun Sep 10 2023 05:10:07 GMT+0000 (Coordinated Universal Time)
228
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
229
+ at 2026-01-05T10:05:12.285Z
223
230
  </div>
224
- </div>
225
231
  <script src="../prettify.js"></script>
226
232
  <script>
227
233
  window.onload = function () {
@@ -7,7 +7,8 @@
7
7
  <meta charset="utf-8" />
8
8
  <link rel="stylesheet" href="../../prettify.css" />
9
9
  <link rel="stylesheet" href="../../base.css" />
10
- <meta name="viewport" content="width=device-width, initial-scale=1">
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
11
12
  <style type='text/css'>
12
13
  .coverage-summary .sorter {
13
14
  background-image: url(../../sort-arrow-sprite.png);
@@ -24,14 +25,14 @@
24
25
  <div class='fl pad1y space-right2'>
25
26
  <span class="strong">100% </span>
26
27
  <span class="quiet">Statements</span>
27
- <span class='fraction'>18/18</span>
28
+ <span class='fraction'>15/15</span>
28
29
  </div>
29
30
 
30
31
 
31
32
  <div class='fl pad1y space-right2'>
32
33
  <span class="strong">100% </span>
33
34
  <span class="quiet">Branches</span>
34
- <span class='fraction'>7/7</span>
35
+ <span class='fraction'>8/8</span>
35
36
  </div>
36
37
 
37
38
 
@@ -45,7 +46,7 @@
45
46
  <div class='fl pad1y space-right2'>
46
47
  <span class="strong">100% </span>
47
48
  <span class="quiet">Lines</span>
48
- <span class='fraction'>18/18</span>
49
+ <span class='fraction'>15/15</span>
49
50
  </div>
50
51
 
51
52
 
@@ -53,6 +54,12 @@
53
54
  <p class="quiet">
54
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.
55
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
56
63
  </div>
57
64
  <div class='status-line high'></div>
58
65
  <pre><table class="coverage">
@@ -96,11 +103,11 @@
96
103
  <a name='L38'></a><a href='#L38'>38</a>
97
104
  <a name='L39'></a><a href='#L39'>39</a>
98
105
  <a name='L40'></a><a href='#L40'>40</a>
99
- <a name='L41'></a><a href='#L41'>41</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
100
- <span class="cline-any cline-yes">1x</span>
106
+ <a name='L41'></a><a href='#L41'>41</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
107
+ <span class="cline-any cline-neutral">&nbsp;</span>
108
+ <span class="cline-any cline-neutral">&nbsp;</span>
109
+ <span class="cline-any cline-neutral">&nbsp;</span>
101
110
  <span class="cline-any cline-neutral">&nbsp;</span>
102
- <span class="cline-any cline-yes">1x</span>
103
- <span class="cline-any cline-yes">1x</span>
104
111
  <span class="cline-any cline-neutral">&nbsp;</span>
105
112
  <span class="cline-any cline-neutral">&nbsp;</span>
106
113
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -112,12 +119,12 @@
112
119
  <span class="cline-any cline-yes">14x</span>
113
120
  <span class="cline-any cline-neutral">&nbsp;</span>
114
121
  <span class="cline-any cline-yes">14x</span>
115
- <span class="cline-any cline-neutral">&nbsp;</span>
122
+ <span class="cline-any cline-yes">1x</span>
116
123
  <span class="cline-any cline-neutral">&nbsp;</span>
117
124
  <span class="cline-any cline-yes">13x</span>
118
125
  <span class="cline-any cline-neutral">&nbsp;</span>
119
126
  <span class="cline-any cline-yes">13x</span>
120
- <span class="cline-any cline-yes">9x</span>
127
+ <span class="cline-any cline-yes">13x</span>
121
128
  <span class="cline-any cline-yes">2x</span>
122
129
  <span class="cline-any cline-neutral">&nbsp;</span>
123
130
  <span class="cline-any cline-yes">7x</span>
@@ -182,10 +189,9 @@ export class JSONAdapter {
182
189
  </div><!-- /wrapper -->
183
190
  <div class='footer quiet pad2 space-top1 center small'>
184
191
  Code coverage generated by
185
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
186
- at Sun Sep 10 2023 05:10:07 GMT+0000 (Coordinated Universal Time)
192
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
193
+ at 2026-01-05T10:05:12.285Z
187
194
  </div>
188
- </div>
189
195
  <script src="../../prettify.js"></script>
190
196
  <script>
191
197
  window.onload = function () {