@monorepolint/utils 0.6.0-alpha.2 → 0.6.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/.turbo/turbo-clean.log +1 -1
  2. package/.turbo/turbo-compile-typescript.log +1 -1
  3. package/.turbo/turbo-lint.log +7 -7
  4. package/.turbo/turbo-test.log +11 -10
  5. package/.turbo/turbo-transpile-typescript.log +4 -4
  6. package/CHANGELOG.md +4 -0
  7. package/build/js/index.js +489 -443
  8. package/build/js/index.js.map +1 -1
  9. package/build/tsconfig.tsbuildinfo +1 -1
  10. package/build/types/CachingHost.d.ts.map +1 -1
  11. package/build/types/Host.d.ts.map +1 -1
  12. package/build/types/PackageJson.d.ts.map +1 -1
  13. package/build/types/SimpleHost.d.ts.map +1 -1
  14. package/build/types/Table.d.ts.map +1 -1
  15. package/build/types/findWorkspaceDir.d.ts.map +1 -1
  16. package/build/types/getPackageNameToDir.d.ts.map +1 -1
  17. package/build/types/getWorkspacePackageDirs.d.ts.map +1 -1
  18. package/build/types/index.d.ts +7 -7
  19. package/build/types/index.d.ts.map +1 -1
  20. package/build/types/matchesAnyGlob.d.ts.map +1 -1
  21. package/build/types/mutateJson.d.ts.map +1 -1
  22. package/build/types/nanosecondsToSanity.d.ts.map +1 -1
  23. package/coverage/AggregateTiming.ts.html +2 -2
  24. package/coverage/CachingHost.ts.html +252 -42
  25. package/coverage/Host.ts.html +15 -3
  26. package/coverage/PackageJson.ts.html +4 -4
  27. package/coverage/SimpleHost.ts.html +40 -7
  28. package/coverage/Table.ts.html +137 -29
  29. package/coverage/Timing.ts.html +1 -1
  30. package/coverage/clover.xml +527 -396
  31. package/coverage/coverage-final.json +13 -13
  32. package/coverage/findWorkspaceDir.ts.html +4 -4
  33. package/coverage/getPackageNameToDir.ts.html +18 -6
  34. package/coverage/getWorkspacePackageDirs.ts.html +168 -138
  35. package/coverage/index.html +40 -40
  36. package/coverage/index.ts.html +30 -30
  37. package/coverage/matchesAnyGlob.ts.html +37 -10
  38. package/coverage/mutateJson.ts.html +17 -5
  39. package/coverage/nanosecondsToSanity.ts.html +11 -5
  40. package/package.json +1 -2
  41. package/src/AggregateTiming.ts +1 -1
  42. package/src/CachingHost.ts +104 -34
  43. package/src/Host.ts +5 -1
  44. package/src/PackageJson.ts +3 -3
  45. package/src/SimpleHost.ts +14 -3
  46. package/src/Table.ts +58 -22
  47. package/src/__tests__/CachingHost.spec.ts +203 -166
  48. package/src/findWorkspaceDir.ts +3 -3
  49. package/src/getPackageNameToDir.ts +6 -2
  50. package/src/getWorkspacePackageDirs.ts +19 -9
  51. package/src/index.ts +7 -7
  52. package/src/matchesAnyGlob.ts +12 -3
  53. package/src/mutateJson.ts +5 -1
  54. package/src/nanosecondsToSanity.ts +3 -1
  55. package/vitest.config.mjs +6 -7
  56. package/vitest.config.mjs.timestamp-1736878329730-aa478e2241542.mjs +2 -2
@@ -97,7 +97,15 @@
97
97
  <a name='L32'></a><a href='#L32'>32</a>
98
98
  <a name='L33'></a><a href='#L33'>33</a>
99
99
  <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
105
+ <span class="cline-any cline-neutral">&nbsp;</span>
106
+ <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>
101
109
  <span class="cline-any cline-neutral">&nbsp;</span>
102
110
  <span class="cline-any cline-neutral">&nbsp;</span>
103
111
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -152,7 +160,11 @@ export interface Host {
152
160
  writeJson(path: string, o: object): void;
153
161
  &nbsp;
154
162
  writeFile(path: string, buffer: Buffer): void;
155
- writeFile(path: string, body: string, opts: { encoding: BufferEncoding }): void;
163
+ writeFile(
164
+ path: string,
165
+ body: string,
166
+ opts: { encoding: BufferEncoding },
167
+ ): void;
156
168
  &nbsp;
157
169
  readFile(path: string, opts?: undefined): Buffer;
158
170
  readFile(path: string, opts: { encoding: BufferEncoding }): string;
@@ -172,7 +184,7 @@ export interface Host {
172
184
  <div class='footer quiet pad2 space-top1 center small'>
173
185
  Code coverage generated by
174
186
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
175
- at 2025-01-17T16:18:31.005Z
187
+ at 2025-01-31T20:59:52.637Z
176
188
  </div>
177
189
  <script src="prettify.js"></script>
178
190
  <script>
@@ -123,9 +123,9 @@ export interface PackageJson {
123
123
  optionalDependencies?: Record&lt;string, string&gt;;
124
124
  workspaces?:
125
125
  | {
126
- packages?: string[];
127
- nohoist?: string[];
128
- }
126
+ packages?: string[];
127
+ nohoist?: string[];
128
+ }
129
129
  | string[];
130
130
  [otherKey: string]: unknown;
131
131
  }
@@ -136,7 +136,7 @@ export interface PackageJson {
136
136
  <div class='footer quiet pad2 space-top1 center small'>
137
137
  Code coverage generated by
138
138
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
139
- at 2025-01-17T16:18:31.005Z
139
+ at 2025-01-31T20:59:52.637Z
140
140
  </div>
141
141
  <script src="prettify.js"></script>
142
142
  <script>
@@ -25,7 +25,7 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>50/50</span>
28
+ <span class='fraction'>61/61</span>
29
29
  </div>
30
30
 
31
31
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>50/50</span>
49
+ <span class='fraction'>61/61</span>
50
50
  </div>
51
51
 
52
52
 
@@ -119,7 +119,18 @@
119
119
  <a name='L54'></a><a href='#L54'>54</a>
120
120
  <a name='L55'></a><a href='#L55'>55</a>
121
121
  <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
123
134
  <span class="cline-any cline-neutral">&nbsp;</span>
124
135
  <span class="cline-any cline-neutral">&nbsp;</span>
125
136
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -175,6 +186,17 @@
175
186
  <span class="cline-any cline-yes">1x</span>
176
187
  <span class="cline-any cline-yes">1x</span>
177
188
  <span class="cline-any cline-yes">1x</span>
189
+ <span class="cline-any cline-yes">1x</span>
190
+ <span class="cline-any cline-yes">1x</span>
191
+ <span class="cline-any cline-yes">1x</span>
192
+ <span class="cline-any cline-yes">1x</span>
193
+ <span class="cline-any cline-yes">1x</span>
194
+ <span class="cline-any cline-yes">1x</span>
195
+ <span class="cline-any cline-yes">1x</span>
196
+ <span class="cline-any cline-yes">1x</span>
197
+ <span class="cline-any cline-yes">1x</span>
198
+ <span class="cline-any cline-yes">1x</span>
199
+ <span class="cline-any cline-yes">1x</span>
178
200
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/*!
179
201
  * Copyright 2022 Palantir Technologies, Inc.
180
202
  *
@@ -199,8 +221,16 @@ export class SimpleHost implements Host {
199
221
  }
200
222
  &nbsp;
201
223
  writeFile(path: string, buffer: Buffer): void;
202
- writeFile(path: string, body: string, opts: { encoding: BufferEncoding }): void;
203
- writeFile(path: string, body: string | Buffer, opts?: { encoding: BufferEncoding }): void {
224
+ writeFile(
225
+ path: string,
226
+ body: string,
227
+ opts: { encoding: BufferEncoding },
228
+ ): void;
229
+ writeFile(
230
+ path: string,
231
+ body: string | Buffer,
232
+ opts?: { encoding: BufferEncoding },
233
+ ): void {
204
234
  if (opts) {
205
235
  this.fs.writeFileSync(path, body, { encoding: opts.encoding });
206
236
  } else {
@@ -210,7 +240,10 @@ export class SimpleHost implements Host {
210
240
  readFile(path: string, opts?: undefined): Buffer;
211
241
  readFile(path: string, opts: { encoding: BufferEncoding }): string;
212
242
  readFile(path: string, opts: { asJson: true }): object;
213
- readFile(path: string, opts?: { encoding?: BufferEncoding; asJson?: boolean }): string | object | Buffer {
243
+ readFile(
244
+ path: string,
245
+ opts?: { encoding?: BufferEncoding; asJson?: boolean },
246
+ ): string | object | Buffer {
214
247
  if (opts?.asJson) {
215
248
  return JSON.parse(this.fs.readFileSync(path, "utf-8"));
216
249
  }
@@ -238,7 +271,7 @@ export class SimpleHost implements Host {
238
271
  <div class='footer quiet pad2 space-top1 center small'>
239
272
  Code coverage generated by
240
273
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
241
- at 2025-01-17T16:18:31.005Z
274
+ at 2025-01-31T20:59:52.637Z
242
275
  </div>
243
276
  <script src="prettify.js"></script>
244
277
  <script>
@@ -25,7 +25,7 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>302/302</span>
28
+ <span class='fraction'>333/333</span>
29
29
  </div>
30
30
 
31
31
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>302/302</span>
49
+ <span class='fraction'>333/333</span>
50
50
  </div>
51
51
 
52
52
 
@@ -381,7 +381,43 @@
381
381
  <a name='L316'></a><a href='#L316'>316</a>
382
382
  <a name='L317'></a><a href='#L317'>317</a>
383
383
  <a name='L318'></a><a href='#L318'>318</a>
384
- <a name='L319'></a><a href='#L319'>319</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
384
+ <a name='L319'></a><a href='#L319'>319</a>
385
+ <a name='L320'></a><a href='#L320'>320</a>
386
+ <a name='L321'></a><a href='#L321'>321</a>
387
+ <a name='L322'></a><a href='#L322'>322</a>
388
+ <a name='L323'></a><a href='#L323'>323</a>
389
+ <a name='L324'></a><a href='#L324'>324</a>
390
+ <a name='L325'></a><a href='#L325'>325</a>
391
+ <a name='L326'></a><a href='#L326'>326</a>
392
+ <a name='L327'></a><a href='#L327'>327</a>
393
+ <a name='L328'></a><a href='#L328'>328</a>
394
+ <a name='L329'></a><a href='#L329'>329</a>
395
+ <a name='L330'></a><a href='#L330'>330</a>
396
+ <a name='L331'></a><a href='#L331'>331</a>
397
+ <a name='L332'></a><a href='#L332'>332</a>
398
+ <a name='L333'></a><a href='#L333'>333</a>
399
+ <a name='L334'></a><a href='#L334'>334</a>
400
+ <a name='L335'></a><a href='#L335'>335</a>
401
+ <a name='L336'></a><a href='#L336'>336</a>
402
+ <a name='L337'></a><a href='#L337'>337</a>
403
+ <a name='L338'></a><a href='#L338'>338</a>
404
+ <a name='L339'></a><a href='#L339'>339</a>
405
+ <a name='L340'></a><a href='#L340'>340</a>
406
+ <a name='L341'></a><a href='#L341'>341</a>
407
+ <a name='L342'></a><a href='#L342'>342</a>
408
+ <a name='L343'></a><a href='#L343'>343</a>
409
+ <a name='L344'></a><a href='#L344'>344</a>
410
+ <a name='L345'></a><a href='#L345'>345</a>
411
+ <a name='L346'></a><a href='#L346'>346</a>
412
+ <a name='L347'></a><a href='#L347'>347</a>
413
+ <a name='L348'></a><a href='#L348'>348</a>
414
+ <a name='L349'></a><a href='#L349'>349</a>
415
+ <a name='L350'></a><a href='#L350'>350</a>
416
+ <a name='L351'></a><a href='#L351'>351</a>
417
+ <a name='L352'></a><a href='#L352'>352</a>
418
+ <a name='L353'></a><a href='#L353'>353</a>
419
+ <a name='L354'></a><a href='#L354'>354</a>
420
+ <a name='L355'></a><a href='#L355'>355</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
385
421
  <span class="cline-any cline-neutral">&nbsp;</span>
386
422
  <span class="cline-any cline-neutral">&nbsp;</span>
387
423
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -496,7 +532,18 @@
496
532
  <span class="cline-any cline-yes">1x</span>
497
533
  <span class="cline-any cline-yes">1x</span>
498
534
  <span class="cline-any cline-yes">1x</span>
499
- <span class="cline-any cline-neutral">&nbsp;</span>
535
+ <span class="cline-any cline-yes">1x</span>
536
+ <span class="cline-any cline-yes">1x</span>
537
+ <span class="cline-any cline-yes">1x</span>
538
+ <span class="cline-any cline-yes">1x</span>
539
+ <span class="cline-any cline-yes">1x</span>
540
+ <span class="cline-any cline-yes">1x</span>
541
+ <span class="cline-any cline-yes">1x</span>
542
+ <span class="cline-any cline-yes">1x</span>
543
+ <span class="cline-any cline-yes">1x</span>
544
+ <span class="cline-any cline-yes">1x</span>
545
+ <span class="cline-any cline-yes">1x</span>
546
+ <span class="cline-any cline-yes">1x</span>
500
547
  <span class="cline-any cline-yes">1x</span>
501
548
  <span class="cline-any cline-neutral">&nbsp;</span>
502
549
  <span class="cline-any cline-yes">1x</span>
@@ -530,6 +577,20 @@
530
577
  <span class="cline-any cline-yes">1x</span>
531
578
  <span class="cline-any cline-yes">1x</span>
532
579
  <span class="cline-any cline-yes">1x</span>
580
+ <span class="cline-any cline-neutral">&nbsp;</span>
581
+ <span class="cline-any cline-yes">1x</span>
582
+ <span class="cline-any cline-yes">1x</span>
583
+ <span class="cline-any cline-neutral">&nbsp;</span>
584
+ <span class="cline-any cline-yes">1x</span>
585
+ <span class="cline-any cline-yes">1x</span>
586
+ <span class="cline-any cline-yes">1x</span>
587
+ <span class="cline-any cline-yes">1x</span>
588
+ <span class="cline-any cline-yes">1x</span>
589
+ <span class="cline-any cline-yes">1x</span>
590
+ <span class="cline-any cline-yes">1x</span>
591
+ <span class="cline-any cline-yes">1x</span>
592
+ <span class="cline-any cline-yes">1x</span>
593
+ <span class="cline-any cline-yes">1x</span>
533
594
  <span class="cline-any cline-yes">1x</span>
534
595
  <span class="cline-any cline-yes">1x</span>
535
596
  <span class="cline-any cline-yes">1x</span>
@@ -540,8 +601,10 @@
540
601
  <span class="cline-any cline-yes">1x</span>
541
602
  <span class="cline-any cline-yes">1x</span>
542
603
  <span class="cline-any cline-yes">1x</span>
604
+ <span class="cline-any cline-neutral">&nbsp;</span>
543
605
  <span class="cline-any cline-yes">1x</span>
544
606
  <span class="cline-any cline-yes">1x</span>
607
+ <span class="cline-any cline-neutral">&nbsp;</span>
545
608
  <span class="cline-any cline-yes">1x</span>
546
609
  <span class="cline-any cline-yes">1x</span>
547
610
  <span class="cline-any cline-yes">1x</span>
@@ -581,7 +644,6 @@
581
644
  <span class="cline-any cline-yes">1x</span>
582
645
  <span class="cline-any cline-yes">1x</span>
583
646
  <span class="cline-any cline-yes">1x</span>
584
- <span class="cline-any cline-neutral">&nbsp;</span>
585
647
  <span class="cline-any cline-yes">1x</span>
586
648
  <span class="cline-any cline-yes">1x</span>
587
649
  <span class="cline-any cline-yes">1x</span>
@@ -595,9 +657,12 @@
595
657
  <span class="cline-any cline-yes">1x</span>
596
658
  <span class="cline-any cline-yes">1x</span>
597
659
  <span class="cline-any cline-yes">1x</span>
660
+ <span class="cline-any cline-neutral">&nbsp;</span>
598
661
  <span class="cline-any cline-yes">1x</span>
599
662
  <span class="cline-any cline-yes">1x</span>
600
663
  <span class="cline-any cline-yes">1x</span>
664
+ <span class="cline-any cline-neutral">&nbsp;</span>
665
+ <span class="cline-any cline-yes">1x</span>
601
666
  <span class="cline-any cline-yes">1x</span>
602
667
  <span class="cline-any cline-yes">1x</span>
603
668
  <span class="cline-any cline-yes">1x</span>
@@ -628,7 +693,6 @@
628
693
  <span class="cline-any cline-yes">1x</span>
629
694
  <span class="cline-any cline-yes">1x</span>
630
695
  <span class="cline-any cline-yes">1x</span>
631
- <span class="cline-any cline-neutral">&nbsp;</span>
632
696
  <span class="cline-any cline-yes">1x</span>
633
697
  <span class="cline-any cline-yes">1x</span>
634
698
  <span class="cline-any cline-yes">1x</span>
@@ -638,6 +702,13 @@
638
702
  <span class="cline-any cline-yes">1x</span>
639
703
  <span class="cline-any cline-yes">1x</span>
640
704
  <span class="cline-any cline-yes">1x</span>
705
+ <span class="cline-any cline-neutral">&nbsp;</span>
706
+ <span class="cline-any cline-yes">1x</span>
707
+ <span class="cline-any cline-yes">1x</span>
708
+ <span class="cline-any cline-yes">1x</span>
709
+ <span class="cline-any cline-yes">1x</span>
710
+ <span class="cline-any cline-yes">1x</span>
711
+ <span class="cline-any cline-yes">1x</span>
641
712
  <span class="cline-any cline-yes">1x</span>
642
713
  <span class="cline-any cline-yes">1x</span>
643
714
  <span class="cline-any cline-yes">1x</span>
@@ -654,6 +725,7 @@
654
725
  <span class="cline-any cline-neutral">&nbsp;</span>
655
726
  <span class="cline-any cline-yes">1x</span>
656
727
  <span class="cline-any cline-yes">1x</span>
728
+ <span class="cline-any cline-neutral">&nbsp;</span>
657
729
  <span class="cline-any cline-yes">1x</span>
658
730
  <span class="cline-any cline-yes">1x</span>
659
731
  <span class="cline-any cline-yes">1x</span>
@@ -671,7 +743,6 @@
671
743
  <span class="cline-any cline-yes">1x</span>
672
744
  <span class="cline-any cline-yes">1x</span>
673
745
  <span class="cline-any cline-yes">1x</span>
674
- <span class="cline-any cline-neutral">&nbsp;</span>
675
746
  <span class="cline-any cline-yes">1x</span>
676
747
  <span class="cline-any cline-yes">1x</span>
677
748
  <span class="cline-any cline-yes">1x</span>
@@ -693,6 +764,7 @@
693
764
  <span class="cline-any cline-yes">1x</span>
694
765
  <span class="cline-any cline-yes">1x</span>
695
766
  <span class="cline-any cline-yes">1x</span>
767
+ <span class="cline-any cline-neutral">&nbsp;</span>
696
768
  <span class="cline-any cline-yes">1x</span>
697
769
  <span class="cline-any cline-yes">1x</span>
698
770
  <span class="cline-any cline-yes">1x</span>
@@ -707,8 +779,9 @@
707
779
  */
708
780
  // tslint:disable:no-console
709
781
  import { nanosecondsToSanity } from "./nanosecondsToSanity.js";
710
- type HeaderFooterHelper&lt;HB, FB, H, F&gt; = (HB extends true ? { header: H } : { header?: H }) &amp;
711
- (FB extends true ? { footer: F } : { footer?: F });
782
+ type HeaderFooterHelper&lt;HB, FB, H, F&gt; =
783
+ &amp; (HB extends true ? { header: H } : { header?: H })
784
+ &amp; (FB extends true ? { footer: F } : { footer?: F });
712
785
  &nbsp;
713
786
  type WithAlignemnt = { alignment?: "right" | "left" };
714
787
  type BaseCellConfig = WithAlignemnt &amp; { type: "bigint" | "string" };
@@ -720,13 +793,20 @@ type BaseBigIntCellConfig = {
720
793
  } &amp; WithAlignemnt;
721
794
  type BaseStringCellConfig = { type: "string" } &amp; WithAlignemnt;
722
795
  &nbsp;
723
- type BigIntColumnConfig&lt;H, F&gt; = WithAlignemnt &amp;
724
- BaseBigIntCellConfig &amp;
725
- HeaderFooterHelper&lt;H, F, string, AggregateFooterConfig | StaticFooterConfig&gt;;
796
+ type BigIntColumnConfig&lt;H, F&gt; =
797
+ &amp; WithAlignemnt
798
+ &amp; BaseBigIntCellConfig
799
+ &amp; HeaderFooterHelper&lt;
800
+ H,
801
+ F,
802
+ string,
803
+ AggregateFooterConfig | StaticFooterConfig
804
+ &gt;;
726
805
  &nbsp;
727
- type StringColumnConfig&lt;H, F&gt; = WithAlignemnt &amp;
728
- BaseStringCellConfig &amp;
729
- HeaderFooterHelper&lt;H, F, string, StaticFooterConfig&gt;;
806
+ type StringColumnConfig&lt;H, F&gt; =
807
+ &amp; WithAlignemnt
808
+ &amp; BaseStringCellConfig
809
+ &amp; HeaderFooterHelper&lt;H, F, string, StaticFooterConfig&gt;;
730
810
  &nbsp;
731
811
  type AggregateFooterConfig = {
732
812
  aggregate: "sum" | "average";
@@ -748,7 +828,8 @@ type TableConfig&lt;T extends any[], H extends boolean, F extends boolean&gt; =
748
828
  showHeader: H;
749
829
  showFooter: F;
750
830
  columns: {
751
- [K in keyof T]: T[K] extends bigint ? BigIntColumnConfig&lt;H, F&gt; : StringColumnConfig&lt;H, F&gt;;
831
+ [K in keyof T]: T[K] extends bigint ? BigIntColumnConfig&lt;H, F&gt;
832
+ : StringColumnConfig&lt;H, F&gt;;
752
833
  };
753
834
  title: string;
754
835
  };
@@ -775,7 +856,7 @@ export class Table&lt;T extends any[]&gt; {
775
856
  | TableConfig&lt;T, true, true&gt;
776
857
  | TableConfig&lt;T, true, false&gt;
777
858
  | TableConfig&lt;T, false, true&gt;
778
- | TableConfig&lt;T, false, false&gt;
859
+ | TableConfig&lt;T, false, false&gt;,
779
860
  ) {
780
861
  this.#config = {
781
862
  padding: 2,
@@ -802,7 +883,9 @@ export class Table&lt;T extends any[]&gt; {
802
883
  ...columnConfig.footer,
803
884
  });
804
885
  } else if ("aggregate" in columnConfig.footer) {
805
- if (columnConfig.type !== "bigint") throw new Error("expecting bigint for aggregate");
886
+ if (columnConfig.type !== "bigint") {
887
+ throw new Error("expecting bigint for aggregate");
888
+ }
806
889
  this.#footerRowConfig.push({
807
890
  type: columnConfig.type,
808
891
  renderAs: columnConfig.renderAs,
@@ -858,8 +941,11 @@ export class Table&lt;T extends any[]&gt; {
858
941
  (this.#config.columns[c].header ?? "").length,
859
942
  ...this.#rows.map((a) =&gt; this.#getCellValueAsString(a[c], colConfig).length),
860
943
  this.#footer &amp;&amp; this.#footerRowConfig
861
- ? this.#getCellValueAsString(this.#footer?.[c] ?? "", this.#footerRowConfig[c]).length
862
- : 0
944
+ ? this.#getCellValueAsString(
945
+ this.#footer?.[c] ?? "",
946
+ this.#footerRowConfig[c],
947
+ ).length
948
+ : 0,
863
949
  );
864
950
  }
865
951
  &nbsp;
@@ -909,7 +995,8 @@ export class Table&lt;T extends any[]&gt; {
909
995
  &nbsp;
910
996
  let hr = "";
911
997
  for (let c = 0; c &lt; footerRow.length; c++) {
912
- hr += this.#getCellValueAligned(footerRow[c], this.#footerRowConfig![c], c) + paddingString; // .padEnd(this.#columnWidths[c], " ") + paddingString;
998
+ hr += this.#getCellValueAligned(footerRow[c], this.#footerRowConfig![c], c)
999
+ + paddingString; // .padEnd(this.#columnWidths[c], " ") + paddingString;
913
1000
  }
914
1001
  hr = hr.trimRight();
915
1002
  console.log(hr);
@@ -947,7 +1034,10 @@ export class Table&lt;T extends any[]&gt; {
947
1034
  console.log();
948
1035
  }
949
1036
  &nbsp;
950
- #getCellValueAsString(value: bigint | string, config: BaseBigIntCellConfig | BaseStringCellConfig) {
1037
+ #getCellValueAsString(
1038
+ value: bigint | string,
1039
+ config: BaseBigIntCellConfig | BaseStringCellConfig,
1040
+ ) {
951
1041
  if (config.type === "bigint" &amp;&amp; config.renderAs === "nanoseconds") {
952
1042
  return nanosecondsToSanity(value as bigint, config.precision ?? 9);
953
1043
  } else {
@@ -955,7 +1045,11 @@ export class Table&lt;T extends any[]&gt; {
955
1045
  }
956
1046
  }
957
1047
  &nbsp;
958
- #getCellValueAligned(value: bigint | string, config: BaseBigIntCellConfig | BaseStringCellConfig, column: number) {
1048
+ #getCellValueAligned(
1049
+ value: bigint | string,
1050
+ config: BaseBigIntCellConfig | BaseStringCellConfig,
1051
+ column: number,
1052
+ ) {
959
1053
  let result: string;
960
1054
  if (config.type === "bigint" &amp;&amp; config.renderAs === "nanoseconds") {
961
1055
  result = nanosecondsToSanity(value as bigint, config.precision ?? 9);
@@ -974,7 +1068,10 @@ export class Table&lt;T extends any[]&gt; {
974
1068
  const config = this.#config.columns[colNum];
975
1069
  &nbsp;
976
1070
  if (config.type === "bigint" &amp;&amp; config.renderAs === "nanoseconds") {
977
- return nanosecondsToSanity(this.#rows[rowNum][colNum], config.precision ?? 9);
1071
+ return nanosecondsToSanity(
1072
+ this.#rows[rowNum][colNum],
1073
+ config.precision ?? 9,
1074
+ );
978
1075
  } else {
979
1076
  return "" + this.#rows[rowNum][colNum];
980
1077
  }
@@ -985,7 +1082,10 @@ export class Table&lt;T extends any[]&gt; {
985
1082
  &nbsp;
986
1083
  let result: string;
987
1084
  if (config.type === "bigint" &amp;&amp; config.renderAs === "nanoseconds") {
988
- result = nanosecondsToSanity(this.#rows[rowNum][colNum], config.precision ?? 9);
1085
+ result = nanosecondsToSanity(
1086
+ this.#rows[rowNum][colNum],
1087
+ config.precision ?? 9,
1088
+ );
989
1089
  } else {
990
1090
  result = "" + this.#rows[rowNum][colNum];
991
1091
  }
@@ -997,12 +1097,20 @@ export class Table&lt;T extends any[]&gt; {
997
1097
  }
998
1098
  }
999
1099
  &nbsp;
1000
- getColumnWidth(colNum: number, config: BigIntColumnConfig&lt;boolean, boolean&gt; | StringColumnConfig&lt;boolean, boolean&gt;) {
1100
+ getColumnWidth(
1101
+ colNum: number,
1102
+ config:
1103
+ | BigIntColumnConfig&lt;boolean, boolean&gt;
1104
+ | StringColumnConfig&lt;boolean, boolean&gt;,
1105
+ ) {
1001
1106
  let maxWidth = Math.max(
1002
1107
  (config.header ?? "").length,
1003
1108
  this.#footer &amp;&amp; this.#footerRowConfig
1004
- ? this.#getCellValueAsString(this.#footer[colNum], this.#footerRowConfig[colNum]).length
1005
- : 0
1109
+ ? this.#getCellValueAsString(
1110
+ this.#footer[colNum],
1111
+ this.#footerRowConfig[colNum],
1112
+ ).length
1113
+ : 0,
1006
1114
  );
1007
1115
  &nbsp;
1008
1116
  for (let r = 0; r &lt; this.#rows.length; r++) {
@@ -1024,7 +1132,7 @@ export class Table&lt;T extends any[]&gt; {
1024
1132
  <div class='footer quiet pad2 space-top1 center small'>
1025
1133
  Code coverage generated by
1026
1134
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1027
- at 2025-01-17T16:18:31.005Z
1135
+ at 2025-01-31T20:59:52.637Z
1028
1136
  </div>
1029
1137
  <script src="prettify.js"></script>
1030
1138
  <script>
@@ -232,7 +232,7 @@ export class Timing {
232
232
  <div class='footer quiet pad2 space-top1 center small'>
233
233
  Code coverage generated by
234
234
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
235
- at 2025-01-17T16:18:31.005Z
235
+ at 2025-01-31T20:59:52.637Z
236
236
  </div>
237
237
  <script src="prettify.js"></script>
238
238
  <script>