@oliversalzburg/js-utils 0.6.0 → 0.7.0

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 (172) hide show
  1. package/package.json +5 -5
  2. package/lib/async/async.d.ts +0 -44
  3. package/lib/async/async.js +0 -76
  4. package/lib/async/async.js.map +0 -1
  5. package/lib/async/async.test.d.ts +0 -1
  6. package/lib/async/async.test.js +0 -26
  7. package/lib/async/async.test.js.map +0 -1
  8. package/lib/core.d.ts +0 -43
  9. package/lib/core.js +0 -2
  10. package/lib/core.js.map +0 -1
  11. package/lib/data/array.d.ts +0 -45
  12. package/lib/data/array.js +0 -70
  13. package/lib/data/array.js.map +0 -1
  14. package/lib/data/nil.d.ts +0 -92
  15. package/lib/data/nil.js +0 -131
  16. package/lib/data/nil.js.map +0 -1
  17. package/lib/data/random.d.ts +0 -111
  18. package/lib/data/random.js +0 -377
  19. package/lib/data/random.js.map +0 -1
  20. package/lib/data/string.d.ts +0 -30
  21. package/lib/data/string.js +0 -52
  22. package/lib/data/string.js.map +0 -1
  23. package/lib/data/tree.d.ts +0 -28
  24. package/lib/data/tree.js +0 -45
  25. package/lib/data/tree.js.map +0 -1
  26. package/lib/device/shake.d.ts +0 -79
  27. package/lib/device/shake.js +0 -135
  28. package/lib/device/shake.js.map +0 -1
  29. package/lib/dom/core.d.ts +0 -21
  30. package/lib/dom/core.js +0 -41
  31. package/lib/dom/core.js.map +0 -1
  32. package/lib/errors/AbstractError.d.ts +0 -29
  33. package/lib/errors/AbstractError.js +0 -59
  34. package/lib/errors/AbstractError.js.map +0 -1
  35. package/lib/errors/InternalError.d.ts +0 -19
  36. package/lib/errors/InternalError.js +0 -38
  37. package/lib/errors/InternalError.js.map +0 -1
  38. package/lib/errors/InvalidArgumentError.d.ts +0 -13
  39. package/lib/errors/InvalidArgumentError.js +0 -22
  40. package/lib/errors/InvalidArgumentError.js.map +0 -1
  41. package/lib/errors/InvalidOperationError.d.ts +0 -13
  42. package/lib/errors/InvalidOperationError.js +0 -22
  43. package/lib/errors/InvalidOperationError.js.map +0 -1
  44. package/lib/errors/NotImplementedError.d.ts +0 -12
  45. package/lib/errors/NotImplementedError.js +0 -21
  46. package/lib/errors/NotImplementedError.js.map +0 -1
  47. package/lib/errors/PermissionViolationError.d.ts +0 -13
  48. package/lib/errors/PermissionViolationError.js +0 -22
  49. package/lib/errors/PermissionViolationError.js.map +0 -1
  50. package/lib/errors/ResourceConflictError.d.ts +0 -12
  51. package/lib/errors/ResourceConflictError.js +0 -21
  52. package/lib/errors/ResourceConflictError.js.map +0 -1
  53. package/lib/errors/UnknownError.d.ts +0 -16
  54. package/lib/errors/UnknownError.js +0 -25
  55. package/lib/errors/UnknownError.js.map +0 -1
  56. package/lib/errors/console.d.ts +0 -7
  57. package/lib/errors/console.js +0 -13
  58. package/lib/errors/console.js.map +0 -1
  59. package/lib/errors/error-serializer.d.ts +0 -45
  60. package/lib/errors/error-serializer.js +0 -71
  61. package/lib/errors/error-serializer.js.map +0 -1
  62. package/lib/errors/error-serializer.test.d.ts +0 -1
  63. package/lib/errors/error-serializer.test.js +0 -109
  64. package/lib/errors/error-serializer.test.js.map +0 -1
  65. package/lib/errors/stream.d.ts +0 -7
  66. package/lib/errors/stream.js +0 -15
  67. package/lib/errors/stream.js.map +0 -1
  68. package/lib/errors/tools.d.ts +0 -10
  69. package/lib/errors/tools.js +0 -13
  70. package/lib/errors/tools.js.map +0 -1
  71. package/lib/events/event.d.ts +0 -9
  72. package/lib/events/event.js +0 -10
  73. package/lib/events/event.js.map +0 -1
  74. package/lib/format/bytes.d.ts +0 -118
  75. package/lib/format/bytes.js +0 -99
  76. package/lib/format/bytes.js.map +0 -1
  77. package/lib/format/bytes.test.d.ts +0 -1
  78. package/lib/format/bytes.test.js +0 -138
  79. package/lib/format/bytes.test.js.map +0 -1
  80. package/lib/format/count.d.ts +0 -14
  81. package/lib/format/count.js +0 -50
  82. package/lib/format/count.js.map +0 -1
  83. package/lib/format/count.test.d.ts +0 -1
  84. package/lib/format/count.test.js +0 -42
  85. package/lib/format/count.test.js.map +0 -1
  86. package/lib/format/milliseconds.d.ts +0 -100
  87. package/lib/format/milliseconds.js +0 -192
  88. package/lib/format/milliseconds.js.map +0 -1
  89. package/lib/format/milliseconds.test.d.ts +0 -1
  90. package/lib/format/milliseconds.test.js +0 -343
  91. package/lib/format/milliseconds.test.js.map +0 -1
  92. package/lib/format/string.d.ts +0 -24
  93. package/lib/format/string.js +0 -30
  94. package/lib/format/string.js.map +0 -1
  95. package/lib/format/string.test.d.ts +0 -1
  96. package/lib/format/string.test.js +0 -17
  97. package/lib/format/string.test.js.map +0 -1
  98. package/lib/graphics/canvas-sandbox-mp.d.ts +0 -258
  99. package/lib/graphics/canvas-sandbox-mp.js +0 -279
  100. package/lib/graphics/canvas-sandbox-mp.js.map +0 -1
  101. package/lib/graphics/canvas-sandbox.d.ts +0 -255
  102. package/lib/graphics/canvas-sandbox.js +0 -361
  103. package/lib/graphics/canvas-sandbox.js.map +0 -1
  104. package/lib/graphics/canvas.d.ts +0 -57
  105. package/lib/graphics/canvas.js +0 -37
  106. package/lib/graphics/canvas.js.map +0 -1
  107. package/lib/graphics/canvas2d-headless.d.ts +0 -85
  108. package/lib/graphics/canvas2d-headless.js +0 -193
  109. package/lib/graphics/canvas2d-headless.js.map +0 -1
  110. package/lib/graphics/canvas2d.d.ts +0 -162
  111. package/lib/graphics/canvas2d.js +0 -328
  112. package/lib/graphics/canvas2d.js.map +0 -1
  113. package/lib/graphics/canvas3d.d.ts +0 -41
  114. package/lib/graphics/canvas3d.js +0 -67
  115. package/lib/graphics/canvas3d.js.map +0 -1
  116. package/lib/graphics/color.d.ts +0 -22
  117. package/lib/graphics/color.js +0 -42
  118. package/lib/graphics/color.js.map +0 -1
  119. package/lib/graphics/core.d.ts +0 -89
  120. package/lib/graphics/core.js +0 -146
  121. package/lib/graphics/core.js.map +0 -1
  122. package/lib/graphics/palette-sampler.d.ts +0 -7
  123. package/lib/graphics/palette-sampler.js +0 -21
  124. package/lib/graphics/palette-sampler.js.map +0 -1
  125. package/lib/graphics/palette.d.ts +0 -120
  126. package/lib/graphics/palette.js +0 -494
  127. package/lib/graphics/palette.js.map +0 -1
  128. package/lib/graphics/palette.test.d.ts +0 -1
  129. package/lib/graphics/palette.test.js +0 -43
  130. package/lib/graphics/palette.test.js.map +0 -1
  131. package/lib/graphics/render-loop.d.ts +0 -80
  132. package/lib/graphics/render-loop.js +0 -120
  133. package/lib/graphics/render-loop.js.map +0 -1
  134. package/lib/graphics/shader.d.ts +0 -56
  135. package/lib/graphics/shader.js +0 -80
  136. package/lib/graphics/shader.js.map +0 -1
  137. package/lib/log/log.d.ts +0 -11
  138. package/lib/log/log.js +0 -2
  139. package/lib/log/log.js.map +0 -1
  140. package/lib/log/report.d.ts +0 -57
  141. package/lib/log/report.js +0 -88
  142. package/lib/log/report.js.map +0 -1
  143. package/lib/math/core.d.ts +0 -85
  144. package/lib/math/core.js +0 -125
  145. package/lib/math/core.js.map +0 -1
  146. package/lib/math/easing.d.ts +0 -204
  147. package/lib/math/easing.js +0 -332
  148. package/lib/math/easing.js.map +0 -1
  149. package/lib/math/euler.d.ts +0 -18
  150. package/lib/math/euler.js +0 -22
  151. package/lib/math/euler.js.map +0 -1
  152. package/lib/math/matrix3.d.ts +0 -217
  153. package/lib/math/matrix3.js +0 -508
  154. package/lib/math/matrix3.js.map +0 -1
  155. package/lib/math/quaternion.d.ts +0 -119
  156. package/lib/math/quaternion.js +0 -270
  157. package/lib/math/quaternion.js.map +0 -1
  158. package/lib/math/transformation.d.ts +0 -26
  159. package/lib/math/transformation.js +0 -31
  160. package/lib/math/transformation.js.map +0 -1
  161. package/lib/math/vector2.d.ts +0 -202
  162. package/lib/math/vector2.js +0 -310
  163. package/lib/math/vector2.js.map +0 -1
  164. package/lib/math/vector3.d.ts +0 -293
  165. package/lib/math/vector3.js +0 -492
  166. package/lib/math/vector3.js.map +0 -1
  167. package/lib/math/vector4.d.ts +0 -182
  168. package/lib/math/vector4.js +0 -302
  169. package/lib/math/vector4.js.map +0 -1
  170. package/lib/measurement/performance.d.ts +0 -13
  171. package/lib/measurement/performance.js +0 -19
  172. package/lib/measurement/performance.js.map +0 -1
@@ -1,343 +0,0 @@
1
- import assert from "node:assert";
2
- import { it } from "node:test";
3
- import { formatMilliseconds } from "./milliseconds.js";
4
- const toBigInt = (milliseconds) => {
5
- if (typeof milliseconds !== "number") {
6
- return undefined;
7
- }
8
- try {
9
- return BigInt(milliseconds);
10
- }
11
- catch {
12
- return undefined;
13
- }
14
- };
15
- function runTests({ title, defaultOptions, cases, }) {
16
- it(title, () => {
17
- const format = (milliseconds, options = {}) => formatMilliseconds(milliseconds, { ...defaultOptions, ...options });
18
- for (const testCase of cases) {
19
- const [milliseconds, options, expected] = testCase.length === 3 ? testCase : [testCase[0], undefined, testCase[1]];
20
- assert.strictEqual(format(milliseconds, options), expected, `Number(${milliseconds.toString()})`);
21
- const bigint = toBigInt(milliseconds);
22
- if (typeof bigint === "bigint") {
23
- assert.strictEqual(format(bigint, options), expected, `BigInt(${bigint.toString()}n)`);
24
- }
25
- }
26
- });
27
- }
28
- runTests({
29
- cases: [
30
- [0, "0ms"],
31
- [0.1, "1ms"],
32
- [1, "1ms"],
33
- [999, "999ms"],
34
- [1000, "1s"],
35
- [1000 + 400, "1.4s"],
36
- [1000 * 2 + 400, "2.4s"],
37
- [1000 * 55, "55s"],
38
- [1000 * 67, "1m 7s"],
39
- [1000 * 60 * 5, "5m"],
40
- [1000 * 60 * 67, "1h 7m"],
41
- [1000 * 60 * 60 * 12, "12h"],
42
- [1000 * 60 * 60 * 40, "1d 16h"],
43
- [1000 * 60 * 60 * 999, "41d 15h"],
44
- [1000 * 60 * 60 * 24 * 465, "1y 100d"],
45
- [1000 * 60 * 67 * 24 * 465, "1y 154d 6h"],
46
- [119_999, "1m 59.9s"],
47
- [120_000, "2m"],
48
- [Number.MAX_SAFE_INTEGER, "285616y 151d 8h 59m 0.9s"],
49
- ],
50
- title: "prettify milliseconds",
51
- });
52
- runTests({
53
- cases: [
54
- [1000 + 4, "1s"],
55
- [1000 * 60 * 60 * 999, "41d"],
56
- [1000 * 60 * 60 * 24 * 465, "1y"],
57
- [1000 * 60 * 67 * 24 * 465, "1y"],
58
- ],
59
- defaultOptions: { compact: true },
60
- title: "have a compact option",
61
- });
62
- runTests({
63
- cases: [
64
- [1000 * 60, { unitCount: 0 }, "1m"],
65
- [1000 * 60, { unitCount: 1 }, "1m"],
66
- [1000 * 60 * 67, { unitCount: 1 }, "1h"],
67
- [1000 * 60 * 67, { unitCount: 2 }, "1h 7m"],
68
- [1000 * 60 * 67 * 24 * 465, { unitCount: 1 }, "1y"],
69
- [1000 * 60 * 67 * 24 * 465, { unitCount: 2 }, "1y 154d"],
70
- [1000 * 60 * 67 * 24 * 465, { unitCount: 3 }, "1y 154d 6h"],
71
- ],
72
- title: "have a unitCount option",
73
- });
74
- runTests({
75
- cases: [
76
- [10_000, "10s"],
77
- [33_333, "33.3s"],
78
- [999, { secondsDecimalDigits: 0 }, "999ms"],
79
- [1000, { secondsDecimalDigits: 0 }, "1s"],
80
- [1999, { secondsDecimalDigits: 0 }, "1s"],
81
- [2000, { secondsDecimalDigits: 0 }, "2s"],
82
- [33_333, { secondsDecimalDigits: 0 }, "33s"],
83
- [33_333, { secondsDecimalDigits: 4 }, "33.3330s"],
84
- ],
85
- title: "have a secondsDecimalDigits option",
86
- });
87
- runTests({
88
- cases: [
89
- [33.333, "33ms"],
90
- [33.333, { millisecondsDecimalDigits: 0 }, "33ms"],
91
- [33.333, { millisecondsDecimalDigits: 4 }, "33.3330ms"],
92
- ],
93
- title: "have a millisecondsDecimalDigits option",
94
- });
95
- runTests({
96
- cases: [
97
- [1000 * 33, { secondsDecimalDigits: 2 }, "33.00s"],
98
- [1000 * 33.000_04, { secondsDecimalDigits: 2 }, "33.00s"],
99
- ],
100
- defaultOptions: { keepDecimalsOnWholeSeconds: true },
101
- title: "have a keepDecimalsOnWholeSeconds option",
102
- });
103
- runTests({
104
- cases: [
105
- [0, "0 milliseconds"],
106
- [0.1, "1 millisecond"],
107
- [1, "1 millisecond"],
108
- [1000, "1 second"],
109
- [1000 + 400, "1.4 seconds"],
110
- [1000 * 2 + 400, "2.4 seconds"],
111
- [1000 * 5, "5 seconds"],
112
- [1000 * 55, "55 seconds"],
113
- [1000 * 67, "1 minute 7 seconds"],
114
- [1000 * 60 * 5, "5 minutes"],
115
- [1000 * 60 * 67, "1 hour 7 minutes"],
116
- [1000 * 60 * 60 * 12, "12 hours"],
117
- [1000 * 60 * 60 * 40, "1 day 16 hours"],
118
- [1000 * 60 * 60 * 999, "41 days 15 hours"],
119
- [1000 * 60 * 60 * 24 * 465, "1 year 100 days"],
120
- [1000 * 60 * 67 * 24 * 465, "1 year 154 days 6 hours"],
121
- ],
122
- defaultOptions: { verbose: true },
123
- title: "have a verbose option",
124
- });
125
- runTests({
126
- cases: [
127
- [1100, { separateMilliseconds: false }, "1.1s"],
128
- [1100, { separateMilliseconds: true }, "1s 100ms"],
129
- ],
130
- title: "have a separateMilliseconds option",
131
- });
132
- runTests({
133
- cases: [
134
- [0.4, "400µs"],
135
- [0.123_571, "123µs 571ns"],
136
- [0.123_456_789, "123µs 456ns"],
137
- [60 * 60 * 1000 + 23 * 1000 + 433 + 0.123_456, "1h 23s 433ms 123µs 456ns"],
138
- ],
139
- defaultOptions: { formatSubMilliseconds: true },
140
- title: "have a formatSubMilliseconds option",
141
- });
142
- runTests({
143
- cases: [
144
- [1000, "1 second"],
145
- [1000 + 400, "1 second"],
146
- [1000 * 2 + 400, "2 seconds"],
147
- [1000 * 5, "5 seconds"],
148
- [1000 * 55, "55 seconds"],
149
- [1000 * 67, "1 minute"],
150
- [1000 * 60 * 5, "5 minutes"],
151
- [1000 * 60 * 67, "1 hour"],
152
- [1000 * 60 * 60 * 12, "12 hours"],
153
- [1000 * 60 * 60 * 40, "1 day"],
154
- [1000 * 60 * 60 * 999, "41 days"],
155
- [1000 * 60 * 60 * 24 * 465, "1 year"],
156
- [1000 * 60 * 67 * 24 * 750, "2 years"],
157
- ],
158
- defaultOptions: { compact: true, verbose: true },
159
- title: "work with verbose and compact options",
160
- });
161
- runTests({
162
- cases: [
163
- [1000 * 60, { unitCount: 1 }, "1 minute"],
164
- [1000 * 60 * 67, { unitCount: 1 }, "1 hour"],
165
- [1000 * 60 * 67, { unitCount: 2 }, "1 hour 7 minutes"],
166
- [1000 * 60 * 67 * 24 * 465, { unitCount: 1 }, "1 year"],
167
- [1000 * 60 * 67 * 24 * 465, { unitCount: 2 }, "1 year 154 days"],
168
- [1000 * 60 * 67 * 24 * 465, { unitCount: 3 }, "1 year 154 days 6 hours"],
169
- ],
170
- defaultOptions: { verbose: true },
171
- title: "work with verbose and unitCount options",
172
- });
173
- runTests({
174
- cases: [
175
- [1000, "1 second"],
176
- [1000 + 400, "1.4000 seconds"],
177
- [1000 * 2 + 400, "2.4000 seconds"],
178
- [1000 * 5 + 254, "5.2540 seconds"],
179
- [33_333, "33.3330 seconds"],
180
- ],
181
- defaultOptions: { secondsDecimalDigits: 4, verbose: true },
182
- title: "work with verbose and secondsDecimalDigits options",
183
- });
184
- runTests({
185
- cases: [
186
- [1, "1.0000 millisecond"],
187
- [1 + 0.4, "1.4000 milliseconds"],
188
- [1 * 2 + 0.4, "2.4000 milliseconds"],
189
- [1 * 5 + 0.254, "5.2540 milliseconds"],
190
- [33.333, "33.3330 milliseconds"],
191
- ],
192
- defaultOptions: { millisecondsDecimalDigits: 4, verbose: true },
193
- title: "work with verbose and millisecondsDecimalDigits options",
194
- });
195
- runTests({
196
- cases: [
197
- [0.4, "400 microseconds"],
198
- [0.123_571, "123 microseconds 571 nanoseconds"],
199
- [0.123_456_789, "123 microseconds 456 nanoseconds"],
200
- [0.001, "1 microsecond"],
201
- ],
202
- defaultOptions: { formatSubMilliseconds: true, verbose: true },
203
- title: "work with verbose and formatSubMilliseconds options",
204
- });
205
- runTests({
206
- cases: [
207
- [1000 * 60 * 67 * 24 * 465, { unitCount: 1 }, "1 year"],
208
- [1000 * 60 * 67 * 24 * 465, { unitCount: 2 }, "1 year"],
209
- [1000 * 60 * 67 * 24 * 465, { unitCount: 3 }, "1 year"],
210
- ],
211
- defaultOptions: { compact: true, verbose: true },
212
- title: "compact option overrides unitCount option",
213
- });
214
- runTests({
215
- cases: [
216
- [1010.340_067, "1s 10ms 340µs 67ns"],
217
- [60 * 1000 + 34 + 0.000_005, "1m 34ms 5ns"],
218
- ],
219
- defaultOptions: { formatSubMilliseconds: true, separateMilliseconds: true },
220
- title: "work with separateMilliseconds and formatSubMilliseconds options",
221
- });
222
- it("throw on invalid", () => {
223
- assert.throws(() => {
224
- formatMilliseconds("foo");
225
- });
226
- assert.throws(() => {
227
- formatMilliseconds(Number.NaN);
228
- });
229
- assert.throws(() => {
230
- formatMilliseconds(Number.POSITIVE_INFINITY);
231
- });
232
- });
233
- runTests({
234
- cases: [
235
- [3 * 60 * 1000, "3 minutes"],
236
- [3 * 60 * 1000 - 1, "2 minutes 59 seconds"],
237
- [365 * 24 * 3600 * 1e3, "1 year"],
238
- [365 * 24 * 3600 * 1e3 - 1, "364 days 23 hours 59 minutes 59 seconds"],
239
- [24 * 3600 * 1e3, "1 day"],
240
- [24 * 3600 * 1e3 - 1, "23 hours 59 minutes 59 seconds"],
241
- [3600 * 1e3, "1 hour"],
242
- [3600 * 1e3 - 1, "59 minutes 59 seconds"],
243
- [2 * 3600 * 1e3, "2 hours"],
244
- [2 * 3600 * 1e3 - 1, "1 hour 59 minutes 59 seconds"],
245
- ],
246
- defaultOptions: { secondsDecimalDigits: 0, verbose: true },
247
- title: "properly rounds milliseconds with secondsDecimalDigits",
248
- });
249
- runTests({
250
- cases: [
251
- // Default formats
252
- [1000, "0:01"],
253
- [1543, "0:01.5"],
254
- [1000 * 60, "1:00"],
255
- [1000 * 90, "1:30"],
256
- [95_543, "1:35.5"],
257
- [1000 * 60 * 10 + 543, "10:00.5"],
258
- [1000 * 60 * 59 + 1000 * 59 + 543, "59:59.5"],
259
- [1000 * 60 * 60 * 15 + 1000 * 60 * 59 + 1000 * 59 + 543, "15:59:59.5"],
260
- // Together with `secondsDecimalDigits`
261
- [999, { secondsDecimalDigits: 0 }, "0:00"],
262
- [999, { secondsDecimalDigits: 1 }, "0:00.9"],
263
- [999, { secondsDecimalDigits: 2 }, "0:00.99"],
264
- [999, { secondsDecimalDigits: 3 }, "0:00.999"],
265
- [1000, { secondsDecimalDigits: 0 }, "0:01"],
266
- [1000, { secondsDecimalDigits: 1 }, "0:01"],
267
- [1000, { secondsDecimalDigits: 2 }, "0:01"],
268
- [1000, { secondsDecimalDigits: 3 }, "0:01"],
269
- [1001, { secondsDecimalDigits: 0 }, "0:01"],
270
- [1001, { secondsDecimalDigits: 1 }, "0:01"],
271
- [1001, { secondsDecimalDigits: 2 }, "0:01"],
272
- [1001, { secondsDecimalDigits: 3 }, "0:01.001"],
273
- [1543, { secondsDecimalDigits: 0 }, "0:01"],
274
- [1543, { secondsDecimalDigits: 1 }, "0:01.5"],
275
- [1543, { secondsDecimalDigits: 2 }, "0:01.54"],
276
- [1543, { secondsDecimalDigits: 3 }, "0:01.543"],
277
- [95_543, { secondsDecimalDigits: 0 }, "1:35"],
278
- [95_543, { secondsDecimalDigits: 1 }, "1:35.5"],
279
- [95_543, { secondsDecimalDigits: 2 }, "1:35.54"],
280
- [95_543, { secondsDecimalDigits: 3 }, "1:35.543"],
281
- [1000 * 60 * 10 + 543, { secondsDecimalDigits: 3 }, "10:00.543"],
282
- [
283
- 1000 * 60 * 60 * 15 + 1000 * 60 * 59 + 1000 * 59 + 543,
284
- { secondsDecimalDigits: 3 },
285
- "15:59:59.543",
286
- ],
287
- // Together with `keepDecimalsOnWholeSeconds`
288
- [999, { keepDecimalsOnWholeSeconds: true, secondsDecimalDigits: 0 }, "0:00"],
289
- [999, { keepDecimalsOnWholeSeconds: true, secondsDecimalDigits: 1 }, "0:00.9"],
290
- [999, { keepDecimalsOnWholeSeconds: true, secondsDecimalDigits: 2 }, "0:00.99"],
291
- [999, { keepDecimalsOnWholeSeconds: true, secondsDecimalDigits: 3 }, "0:00.999"],
292
- [1000, { keepDecimalsOnWholeSeconds: true }, "0:01.0"],
293
- [1000, { keepDecimalsOnWholeSeconds: true, secondsDecimalDigits: 0 }, "0:01"],
294
- [1000, { keepDecimalsOnWholeSeconds: true, secondsDecimalDigits: 1 }, "0:01.0"],
295
- [1000, { keepDecimalsOnWholeSeconds: true, secondsDecimalDigits: 3 }, "0:01.000"],
296
- [1000 * 90, { keepDecimalsOnWholeSeconds: true }, "1:30.0"],
297
- [1000 * 90, { keepDecimalsOnWholeSeconds: true, secondsDecimalDigits: 3 }, "1:30.000"],
298
- [1000 * 60 * 10, { keepDecimalsOnWholeSeconds: true, secondsDecimalDigits: 3 }, "10:00.000"],
299
- // Together with `unitCount`
300
- [1000 * 90, { secondsDecimalDigits: 0, unitCount: 1 }, "1"],
301
- [1000 * 90, { secondsDecimalDigits: 0, unitCount: 2 }, "1:30"],
302
- [1000 * 60 * 90, { secondsDecimalDigits: 0, unitCount: 3 }, "1:30:00"],
303
- [95_543, { secondsDecimalDigits: 1, unitCount: 1 }, "1"],
304
- [95_543, { secondsDecimalDigits: 1, unitCount: 2 }, "1:35.5"],
305
- [95_543 + 1000 * 60 * 60, { secondsDecimalDigits: 1, unitCount: 3 }, "1:01:35.5"],
306
- // Make sure incompatible options fall back to `colonNotation`
307
- [1000 * 60 * 59 + 1000 * 59 + 543, { formatSubMilliseconds: true }, "59:59.5"],
308
- [1000 * 60 * 59 + 1000 * 59 + 543, { separateMilliseconds: true }, "59:59.5"],
309
- [1000 * 60 * 59 + 1000 * 59 + 543, { verbose: true }, "59:59.5"],
310
- [1000 * 60 * 59 + 1000 * 59 + 543, { compact: true }, "59:59.5"],
311
- // Big numbers
312
- [Number.MAX_SAFE_INTEGER, "285616:151:08:59:00.9"],
313
- ],
314
- defaultOptions: { colonNotation: true },
315
- title: "`colonNotation` option",
316
- });
317
- it("Big numbers", () => {
318
- assert.strictEqual(formatMilliseconds(Number.MAX_VALUE), "5700447535712568547083700427941645003808085225292279557374304680873482979681895890593452082909683139015032646149857723394516742095667500822861020052921074432454921864096959420926519725467567456931340929884912090099277441972878147362726992943838905852030073647982034630974035871792165820638724934142y 218d 8h 8m 48s");
319
- assert.strictEqual(formatMilliseconds(BigInt(Number.MAX_VALUE)), "5700447535712568836077099940756733789893155997141203595856084373514626483384973958669126034778249561502424497511237394223564222694364034207523704550467323597984839883832803211448677387442583997465622415920063861691545637902816557209722493636863373550063350653353143175061459195234630260059944318435y 207d 22h 14m 18.3s");
320
- const duration = 0n +
321
- // 1ms
322
- 1n +
323
- // 2s
324
- 2n * 1000n +
325
- // 3m
326
- 3n * 1000n * 60n +
327
- // 4h
328
- 4n * 1000n * 60n * 60n +
329
- // Days
330
- BigInt(Number.MAX_VALUE) * 1000n * 60n * 60n * 24n;
331
- assert.strictEqual(formatMilliseconds(duration), "492518667085565947437061434881381799446768678152999990681965689871663728164461750029012489404840762113809476584970910860915948840793052555530048073160376758865890165963154197469165726275039257381029776735493517650149543114803350542920023450224995474725473496449711570325310074468272054469179189112833218790y 18d 4h 3m 2s");
332
- assert.strictEqual(formatMilliseconds(duration, { colonNotation: true }), "492518667085565947437061434881381799446768678152999990681965689871663728164461750029012489404840762113809476584970910860915948840793052555530048073160376758865890165963154197469165726275039257381029776735493517650149543114803350542920023450224995474725473496449711570325310074468272054469179189112833218790:18:04:03:02");
333
- });
334
- it("pure", () => {
335
- const runTest = (options) => {
336
- const copy = { ...options };
337
- formatMilliseconds(1, options);
338
- assert.deepStrictEqual(options, copy);
339
- };
340
- runTest({ colonNotation: true });
341
- runTest({ compact: true });
342
- });
343
- //# sourceMappingURL=milliseconds.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"milliseconds.test.js","sourceRoot":"","sources":["../../source/format/milliseconds.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,OAAO,EAA6B,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAElF,MAAM,QAAQ,GAAG,CAAC,YAAoB,EAAsB,EAAE;IAC5D,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,YAAY,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF,SAAS,QAAQ,CAAC,EAChB,KAAK,EACL,cAAc,EACd,KAAK,GAKN;IACC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,CAAC,YAA6B,EAAE,UAAqC,EAAE,EAAE,EAAE,CACxF,kBAAkB,CAAC,YAAY,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QAEtE,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC7B,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,GACrC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAE3E,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,EAC7B,QAAQ,EACR,UAAU,YAAY,CAAC,QAAQ,EAAE,GAAG,CACrC,CAAC;YAEF,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;YACtC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACzF,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,QAAQ,CAAC;IACP,KAAK,EAAE;QACL,CAAC,CAAC,EAAE,KAAK,CAAC;QACV,CAAC,GAAG,EAAE,KAAK,CAAC;QACZ,CAAC,CAAC,EAAE,KAAK,CAAC;QACV,CAAC,GAAG,EAAE,OAAO,CAAC;QACd,CAAC,IAAI,EAAE,IAAI,CAAC;QACZ,CAAC,IAAI,GAAG,GAAG,EAAE,MAAM,CAAC;QACpB,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC;QACxB,CAAC,IAAI,GAAG,EAAE,EAAE,KAAK,CAAC;QAClB,CAAC,IAAI,GAAG,EAAE,EAAE,OAAO,CAAC;QACpB,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC;QACrB,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC;QACzB,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC;QAC5B,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,QAAQ,CAAC;QAC/B,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,SAAS,CAAC;QACjC,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,SAAS,CAAC;QACtC,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,YAAY,CAAC;QACzC,CAAC,OAAO,EAAE,UAAU,CAAC;QACrB,CAAC,OAAO,EAAE,IAAI,CAAC;QACf,CAAC,MAAM,CAAC,gBAAgB,EAAE,0BAA0B,CAAC;KACtD;IACD,KAAK,EAAE,uBAAuB;CAC/B,CAAC,CAAC;AAEH,QAAQ,CAAC;IACP,KAAK,EAAE;QACL,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC;QAChB,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,KAAK,CAAC;QAC7B,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,IAAI,CAAC;QACjC,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,IAAI,CAAC;KAClC;IACD,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;IACjC,KAAK,EAAE,uBAAuB;CAC/B,CAAC,CAAC;AAEH,QAAQ,CAAC;IACP,KAAK,EAAE;QACL,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACnC,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACnC,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACxC,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC;QAC3C,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACnD,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC;QACxD,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,YAAY,CAAC;KAC5D;IACD,KAAK,EAAE,yBAAyB;CACjC,CAAC,CAAC;AAEH,QAAQ,CAAC;IACP,KAAK,EAAE;QACL,CAAC,MAAM,EAAE,KAAK,CAAC;QACf,CAAC,MAAM,EAAE,OAAO,CAAC;QACjB,CAAC,GAAG,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC;QAC3C,CAAC,IAAI,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACzC,CAAC,IAAI,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACzC,CAAC,IAAI,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACzC,CAAC,MAAM,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC;QAC5C,CAAC,MAAM,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC;KAClD;IACD,KAAK,EAAE,oCAAoC;CAC5C,CAAC,CAAC;AAEH,QAAQ,CAAC;IACP,KAAK,EAAE;QACL,CAAC,MAAM,EAAE,MAAM,CAAC;QAChB,CAAC,MAAM,EAAE,EAAE,yBAAyB,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC;QAClD,CAAC,MAAM,EAAE,EAAE,yBAAyB,EAAE,CAAC,EAAE,EAAE,WAAW,CAAC;KACxD;IACD,KAAK,EAAE,yCAAyC;CACjD,CAAC,CAAC;AAEH,QAAQ,CAAC;IACP,KAAK,EAAE;QACL,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC;QAClD,CAAC,IAAI,GAAG,SAAS,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC;KAC1D;IACD,cAAc,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE;IACpD,KAAK,EAAE,0CAA0C;CAClD,CAAC,CAAC;AAEH,QAAQ,CAAC;IACP,KAAK,EAAE;QACL,CAAC,CAAC,EAAE,gBAAgB,CAAC;QACrB,CAAC,GAAG,EAAE,eAAe,CAAC;QACtB,CAAC,CAAC,EAAE,eAAe,CAAC;QACpB,CAAC,IAAI,EAAE,UAAU,CAAC;QAClB,CAAC,IAAI,GAAG,GAAG,EAAE,aAAa,CAAC;QAC3B,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,EAAE,aAAa,CAAC;QAC/B,CAAC,IAAI,GAAG,CAAC,EAAE,WAAW,CAAC;QACvB,CAAC,IAAI,GAAG,EAAE,EAAE,YAAY,CAAC;QACzB,CAAC,IAAI,GAAG,EAAE,EAAE,oBAAoB,CAAC;QACjC,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,WAAW,CAAC;QAC5B,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,kBAAkB,CAAC;QACpC,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,CAAC;QACjC,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,gBAAgB,CAAC;QACvC,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,kBAAkB,CAAC;QAC1C,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,iBAAiB,CAAC;QAC9C,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,yBAAyB,CAAC;KACvD;IACD,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;IACjC,KAAK,EAAE,uBAAuB;CAC/B,CAAC,CAAC;AAEH,QAAQ,CAAC;IACP,KAAK,EAAE;QACL,CAAC,IAAI,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC;QAC/C,CAAC,IAAI,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE,UAAU,CAAC;KACnD;IACD,KAAK,EAAE,oCAAoC;CAC5C,CAAC,CAAC;AAEH,QAAQ,CAAC;IACP,KAAK,EAAE;QACL,CAAC,GAAG,EAAE,OAAO,CAAC;QACd,CAAC,SAAS,EAAE,aAAa,CAAC;QAC1B,CAAC,aAAa,EAAE,aAAa,CAAC;QAC9B,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,SAAS,EAAE,0BAA0B,CAAC;KAC3E;IACD,cAAc,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE;IAC/C,KAAK,EAAE,qCAAqC;CAC7C,CAAC,CAAC;AAEH,QAAQ,CAAC;IACP,KAAK,EAAE;QACL,CAAC,IAAI,EAAE,UAAU,CAAC;QAClB,CAAC,IAAI,GAAG,GAAG,EAAE,UAAU,CAAC;QACxB,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,EAAE,WAAW,CAAC;QAC7B,CAAC,IAAI,GAAG,CAAC,EAAE,WAAW,CAAC;QACvB,CAAC,IAAI,GAAG,EAAE,EAAE,YAAY,CAAC;QACzB,CAAC,IAAI,GAAG,EAAE,EAAE,UAAU,CAAC;QACvB,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,WAAW,CAAC;QAC5B,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,QAAQ,CAAC;QAC1B,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,CAAC;QACjC,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC;QAC9B,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,SAAS,CAAC;QACjC,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,QAAQ,CAAC;QACrC,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,SAAS,CAAC;KACvC;IACD,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IAChD,KAAK,EAAE,uCAAuC;CAC/C,CAAC,CAAC;AAEH,QAAQ,CAAC;IACP,KAAK,EAAE;QACL,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC;QACzC,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC;QAC5C,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,kBAAkB,CAAC;QACtD,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC;QACvD,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,iBAAiB,CAAC;QAChE,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,yBAAyB,CAAC;KACzE;IACD,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;IACjC,KAAK,EAAE,yCAAyC;CACjD,CAAC,CAAC;AAEH,QAAQ,CAAC;IACP,KAAK,EAAE;QACL,CAAC,IAAI,EAAE,UAAU,CAAC;QAClB,CAAC,IAAI,GAAG,GAAG,EAAE,gBAAgB,CAAC;QAC9B,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,EAAE,gBAAgB,CAAC;QAClC,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,EAAE,gBAAgB,CAAC;QAClC,CAAC,MAAM,EAAE,iBAAiB,CAAC;KAC5B;IACD,cAAc,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;IAC1D,KAAK,EAAE,oDAAoD;CAC5D,CAAC,CAAC;AAEH,QAAQ,CAAC;IACP,KAAK,EAAE;QACL,CAAC,CAAC,EAAE,oBAAoB,CAAC;QACzB,CAAC,CAAC,GAAG,GAAG,EAAE,qBAAqB,CAAC;QAChC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,qBAAqB,CAAC;QACpC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,qBAAqB,CAAC;QACtC,CAAC,MAAM,EAAE,sBAAsB,CAAC;KACjC;IACD,cAAc,EAAE,EAAE,yBAAyB,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;IAC/D,KAAK,EAAE,yDAAyD;CACjE,CAAC,CAAC;AAEH,QAAQ,CAAC;IACP,KAAK,EAAE;QACL,CAAC,GAAG,EAAE,kBAAkB,CAAC;QACzB,CAAC,SAAS,EAAE,kCAAkC,CAAC;QAC/C,CAAC,aAAa,EAAE,kCAAkC,CAAC;QACnD,CAAC,KAAK,EAAE,eAAe,CAAC;KACzB;IACD,cAAc,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IAC9D,KAAK,EAAE,qDAAqD;CAC7D,CAAC,CAAC;AAEH,QAAQ,CAAC;IACP,KAAK,EAAE;QACL,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC;QACvD,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC;QACvD,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC;KACxD;IACD,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IAChD,KAAK,EAAE,2CAA2C;CACnD,CAAC,CAAC;AAEH,QAAQ,CAAC;IACP,KAAK,EAAE;QACL,CAAC,YAAY,EAAE,oBAAoB,CAAC;QACpC,CAAC,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,SAAS,EAAE,aAAa,CAAC;KAC5C;IACD,cAAc,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;IAC3E,KAAK,EAAE,kEAAkE;CAC1E,CAAC,CAAC;AAEH,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAC1B,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;QACjB,kBAAkB,CAAC,KAA0B,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;QACjB,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;QACjB,kBAAkB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC;IACP,KAAK,EAAE;QACL,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,WAAW,CAAC;QAC5B,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,EAAE,sBAAsB,CAAC;QAC3C,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,EAAE,QAAQ,CAAC;QACjC,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,yCAAyC,CAAC;QACtE,CAAC,EAAE,GAAG,IAAI,GAAG,GAAG,EAAE,OAAO,CAAC;QAC1B,CAAC,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,gCAAgC,CAAC;QACvD,CAAC,IAAI,GAAG,GAAG,EAAE,QAAQ,CAAC;QACtB,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,uBAAuB,CAAC;QACzC,CAAC,CAAC,GAAG,IAAI,GAAG,GAAG,EAAE,SAAS,CAAC;QAC3B,CAAC,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,8BAA8B,CAAC;KACrD;IACD,cAAc,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;IAC1D,KAAK,EAAE,wDAAwD;CAChE,CAAC,CAAC;AAEH,QAAQ,CAAC;IACP,KAAK,EAAE;QACL,kBAAkB;QAClB,CAAC,IAAI,EAAE,MAAM,CAAC;QACd,CAAC,IAAI,EAAE,QAAQ,CAAC;QAChB,CAAC,IAAI,GAAG,EAAE,EAAE,MAAM,CAAC;QACnB,CAAC,IAAI,GAAG,EAAE,EAAE,MAAM,CAAC;QACnB,CAAC,MAAM,EAAE,QAAQ,CAAC;QAClB,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,SAAS,CAAC;QACjC,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,SAAS,CAAC;QAC7C,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,YAAY,CAAC;QAEtE,uCAAuC;QACvC,CAAC,GAAG,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC;QAC1C,CAAC,GAAG,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC;QAC5C,CAAC,GAAG,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC;QAC7C,CAAC,GAAG,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC;QAC9C,CAAC,IAAI,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC;QAC3C,CAAC,IAAI,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC;QAC3C,CAAC,IAAI,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC;QAC3C,CAAC,IAAI,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC;QAC3C,CAAC,IAAI,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC;QAC3C,CAAC,IAAI,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC;QAC3C,CAAC,IAAI,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC;QAC3C,CAAC,IAAI,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC;QAC/C,CAAC,IAAI,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC;QAC3C,CAAC,IAAI,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC;QAC7C,CAAC,IAAI,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC;QAC9C,CAAC,IAAI,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC;QAC/C,CAAC,MAAM,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC;QAC7C,CAAC,MAAM,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC;QAC/C,CAAC,MAAM,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC;QAChD,CAAC,MAAM,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC;QACjD,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,WAAW,CAAC;QAChE;YACE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG;YACtD,EAAE,oBAAoB,EAAE,CAAC,EAAE;YAC3B,cAAc;SACf;QAED,6CAA6C;QAC7C,CAAC,GAAG,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC;QAC5E,CAAC,GAAG,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC;QAC9E,CAAC,GAAG,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC;QAC/E,CAAC,GAAG,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC;QAChF,CAAC,IAAI,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC;QACtD,CAAC,IAAI,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC;QAC7E,CAAC,IAAI,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC;QAC/E,CAAC,IAAI,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC;QACjF,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC;QAC3D,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC;QACtF,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,WAAW,CAAC;QAE5F,4BAA4B;QAC5B,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC;QAC3D,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC;QAC9D,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC;QACtE,CAAC,MAAM,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC;QACxD,CAAC,MAAM,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC;QAC7D,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,WAAW,CAAC;QAEjF,8DAA8D;QAC9D,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC;QAC9E,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC;QAC7E,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC;QAChE,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC;QAEhE,cAAc;QACd,CAAC,MAAM,CAAC,gBAAgB,EAAE,uBAAuB,CAAC;KACnD;IACD,cAAc,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;IACvC,KAAK,EAAE,wBAAwB;CAChC,CAAC,CAAC;AAEH,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;IACrB,MAAM,CAAC,WAAW,CAChB,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,EACpC,4TAA4T,CAC7T,CAAC;IACF,MAAM,CAAC,WAAW,CAChB,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAC5C,gUAAgU,CACjU,CAAC;IAEF,MAAM,QAAQ,GACZ,EAAE;QACF,MAAM;QACN,EAAE;QACF,KAAK;QACL,EAAE,GAAG,KAAK;QACV,KAAK;QACL,EAAE,GAAG,KAAK,GAAG,GAAG;QAChB,KAAK;QACL,EAAE,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG;QACtB,OAAO;QACP,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACrD,MAAM,CAAC,WAAW,CAChB,kBAAkB,CAAC,QAAQ,CAAC,EAC5B,kUAAkU,CACnU,CAAC;IACF,MAAM,CAAC,WAAW,CAChB,kBAAkB,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EACrD,gUAAgU,CACjU,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;IACd,MAAM,OAAO,GAAG,CAAC,OAAkC,EAAE,EAAE;QACrD,MAAM,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QAC5B,kBAAkB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC/B,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC"}
@@ -1,24 +0,0 @@
1
- /**
2
- * Formats a given input string with numeric placeholders.
3
- * @example
4
- * ```ts
5
- * // returns "Hello World"
6
- * formatString("{0} {1}", ["Hello", "World"]);
7
- * ```
8
- * @param string - The input string with placeholders.
9
- * @param formatArguments - An array of strings to place into the placeholders.
10
- * @returns The formatted string.
11
- */
12
- export declare const formatString: (string: string, ...formatArguments: Array<string>) => string;
13
- /**
14
- * Formats a given input string with alphanumeric placeholders.
15
- * @example
16
- * ```ts
17
- * // returns "Hello World"
18
- * formatString("{first} {second}", {first:"Hello", second:"World"});
19
- * ```
20
- * @param string - The input string with placeholders.
21
- * @param parameters - A hash of parameters to place in the placeholders.
22
- * @returns The formatted string.
23
- */
24
- export declare const formatStringTemplate: (string: string, parameters: Record<string, string | undefined>) => string;
@@ -1,30 +0,0 @@
1
- /**
2
- * Formats a given input string with numeric placeholders.
3
- * @example
4
- * ```ts
5
- * // returns "Hello World"
6
- * formatString("{0} {1}", ["Hello", "World"]);
7
- * ```
8
- * @param string - The input string with placeholders.
9
- * @param formatArguments - An array of strings to place into the placeholders.
10
- * @returns The formatted string.
11
- */
12
- export const formatString = (string, ...formatArguments) => {
13
- return string.replace(/{(\d+)}/g, (match, matchedDigits) => typeof formatArguments[matchedDigits] !== "undefined" ? formatArguments[matchedDigits] : match);
14
- };
15
- /**
16
- * Formats a given input string with alphanumeric placeholders.
17
- * @example
18
- * ```ts
19
- * // returns "Hello World"
20
- * formatString("{first} {second}", {first:"Hello", second:"World"});
21
- * ```
22
- * @param string - The input string with placeholders.
23
- * @param parameters - A hash of parameters to place in the placeholders.
24
- * @returns The formatted string.
25
- */
26
- export const formatStringTemplate = (string, parameters) => {
27
- string = string.replace(/#{[\w.]+}/g, query => parameters[query.slice(2, query.length - 1)] ?? "<missing parameter>");
28
- return string;
29
- };
30
- //# sourceMappingURL=string.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"string.js","sourceRoot":"","sources":["../../source/format/string.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,GAAG,eAA8B,EAAU,EAAE;IACxF,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,aAAqB,EAAU,EAAE,CACzE,OAAO,eAAe,CAAC,aAAa,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAC/F,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,MAAc,EACd,UAA8C,EACtC,EAAE;IACV,MAAM,GAAG,MAAM,CAAC,OAAO,CACrB,YAAY,EACZ,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,qBAAqB,CAC/E,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,17 +0,0 @@
1
- import assert from "node:assert";
2
- import { it } from "node:test";
3
- import { formatString, formatStringTemplate } from "./string.js";
4
- it("formats index-based template strings", () => {
5
- assert.strictEqual(formatString("'{0}'", "foo"), "'foo'");
6
- assert.strictEqual(formatString("'{0}': {1}", "foo", "bar"), "'foo': bar");
7
- assert.strictEqual(formatString("'{0}': {1}", "foo"), "'foo': {1}");
8
- });
9
- it("formats literal-based template strings", () => {
10
- assert.strictEqual(formatStringTemplate("'#{foo}'", { foo: "foo" }), "'foo'");
11
- assert.strictEqual(formatStringTemplate("'#{foo}': #{bar}", { bar: "bar", foo: "foo" }), "'foo': bar");
12
- assert.strictEqual(formatStringTemplate("'#{foo}': #{bar}", { foo: "foo" }), "'foo': <missing parameter>");
13
- });
14
- it("treats empty string appropriately", () => {
15
- assert.strictEqual(formatString("'{0}'", ""), "''");
16
- });
17
- //# sourceMappingURL=string.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"string.test.js","sourceRoot":"","sources":["../../source/format/string.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEjE,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;IAC9C,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1D,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC;IAC3E,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC;AACtE,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;IAChD,MAAM,CAAC,WAAW,CAAC,oBAAoB,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9E,MAAM,CAAC,WAAW,CAChB,oBAAoB,CAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EACpE,YAAY,CACb,CAAC;IACF,MAAM,CAAC,WAAW,CAChB,oBAAoB,CAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EACxD,4BAA4B,CAC7B,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;IAC3C,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC"}