git.iko.soy/rowtype-yoga/purescript-yoga-config
on main help sign in
639 lines 12 kB history raw
1[
2 [
3 "Bytes bytesToNumber extracts value",
4 {
5 "timestamp": "1771536964586.0",
6 "success": true
7 }
8 ],
9 [
10 "Bytes parses bytes suffix",
11 {
12 "timestamp": "1771536964586.0",
13 "success": true
14 }
15 ],
16 [
17 "Bytes parses gigabytes",
18 {
19 "timestamp": "1771536964586.0",
20 "success": true
21 }
22 ],
23 [
24 "Bytes parses kilobytes",
25 {
26 "timestamp": "1771536964586.0",
27 "success": true
28 }
29 ],
30 [
31 "Bytes parses megabytes",
32 {
33 "timestamp": "1771536964586.0",
34 "success": true
35 }
36 ],
37 [
38 "Bytes parses raw number",
39 {
40 "timestamp": "1771536964586.0",
41 "success": true
42 }
43 ],
44 [
45 "Bytes parses terabytes",
46 {
47 "timestamp": "1771536964586.0",
48 "success": true
49 }
50 ],
51 [
52 "Bytes rejects invalid suffix",
53 {
54 "timestamp": "1771536964586.0",
55 "success": true
56 }
57 ],
58 [
59 "Bytes rejects negative bytes",
60 {
61 "timestamp": "1771536964586.0",
62 "success": true
63 }
64 ],
65 [
66 "ConfigSource Semigroup combines sources with <>",
67 {
68 "timestamp": "1771536964586.0",
69 "success": true
70 }
71 ],
72 [
73 "ConfigSource Semigroup mempty acts as identity",
74 {
75 "timestamp": "1771536964586.0",
76 "success": true
77 }
78 ],
79 [
80 "Duration parses days",
81 {
82 "timestamp": "1771536964586.0",
83 "success": true
84 }
85 ],
86 [
87 "Duration parses fractional values",
88 {
89 "timestamp": "1771536964586.0",
90 "success": true
91 }
92 ],
93 [
94 "Duration parses hours",
95 {
96 "timestamp": "1771536964586.0",
97 "success": true
98 }
99 ],
100 [
101 "Duration parses milliseconds",
102 {
103 "timestamp": "1771536964586.0",
104 "success": true
105 }
106 ],
107 [
108 "Duration parses minutes",
109 {
110 "timestamp": "1771536964586.0",
111 "success": true
112 }
113 ],
114 [
115 "Duration parses seconds",
116 {
117 "timestamp": "1771536964586.0",
118 "success": true
119 }
120 ],
121 [
122 "Duration rejects empty string",
123 {
124 "timestamp": "1771536964586.0",
125 "success": true
126 }
127 ],
128 [
129 "Duration rejects invalid suffix",
130 {
131 "timestamp": "1771536964586.0",
132 "success": true
133 }
134 ],
135 [
136 "Duration rejects negative duration",
137 {
138 "timestamp": "1771536964586.0",
139 "success": true
140 }
141 ],
142 [
143 "Duration rejects non-numeric value",
144 {
145 "timestamp": "1771536964586.0",
146 "success": true
147 }
148 ],
149 [
150 "Duration rejects suffix only",
151 {
152 "timestamp": "1771536964586.0",
153 "success": true
154 }
155 ],
156 [
157 "Duration zero duration is valid",
158 {
159 "timestamp": "1771536964586.0",
160 "success": true
161 }
162 ],
163 [
164 "NonBlank mkNonBlank rejects empty string",
165 {
166 "timestamp": "1771536964586.0",
167 "success": true
168 }
169 ],
170 [
171 "NonBlank mkNonBlank rejects whitespace",
172 {
173 "timestamp": "1771536964586.0",
174 "success": true
175 }
176 ],
177 [
178 "NonBlank mkNonBlank trims and returns value",
179 {
180 "timestamp": "1771536964586.0",
181 "success": true
182 }
183 ],
184 [
185 "NonBlank parses non-blank string",
186 {
187 "timestamp": "1771536964586.0",
188 "success": true
189 }
190 ],
191 [
192 "NonBlank rejects empty string",
193 {
194 "timestamp": "1771536964586.0",
195 "success": true
196 }
197 ],
198 [
199 "NonBlank rejects tab-only via YAML",
200 {
201 "timestamp": "1771536964586.0",
202 "success": true
203 }
204 ],
205 [
206 "NonBlank rejects whitespace-only string",
207 {
208 "timestamp": "1771536964586.0",
209 "success": true
210 }
211 ],
212 [
213 "NonBlank trims whitespace",
214 {
215 "timestamp": "1771536964586.0",
216 "success": true
217 }
218 ],
219 [
220 "OmLayer configLayer provides typed config",
221 {
222 "timestamp": "1771536964586.0",
223 "success": true
224 }
225 ],
226 [
227 "OmLayer configLayer reports parse errors",
228 {
229 "timestamp": "1771536964586.0",
230 "success": true
231 }
232 ],
233 [
234 "OmLayer configLayer' provides literal config",
235 {
236 "timestamp": "1771536964586.0",
237 "success": true
238 }
239 ],
240 [
241 "OmLayer configLayerFromSources merges and provides",
242 {
243 "timestamp": "1771536964586.0",
244 "success": true
245 }
246 ],
247 [
248 "Port accepts port 0",
249 {
250 "timestamp": "1771536964586.0",
251 "success": true
252 }
253 ],
254 [
255 "Port accepts port 65535",
256 {
257 "timestamp": "1771536964586.0",
258 "success": true
259 }
260 ],
261 [
262 "Port parses valid port",
263 {
264 "timestamp": "1771536964586.0",
265 "success": true
266 }
267 ],
268 [
269 "Port rejects negative port",
270 {
271 "timestamp": "1771536964586.0",
272 "success": true
273 }
274 ],
275 [
276 "Port rejects out of range port",
277 {
278 "timestamp": "1771536964586.0",
279 "success": true
280 }
281 ],
282 [
283 "Port rejects port above 65535",
284 {
285 "timestamp": "1771536964586.0",
286 "success": true
287 }
288 ],
289 [
290 "Secret parses and masks in show",
291 {
292 "timestamp": "1771536964586.0",
293 "success": true
294 }
295 ],
296 [
297 "Secret works with nested types",
298 {
299 "timestamp": "1771536964586.0",
300 "success": true
301 }
302 ],
303 [
304 "WriteForeign roundtrip Bytes roundtrips through serialization",
305 {
306 "timestamp": "1771536964586.0",
307 "success": true
308 }
309 ],
310 [
311 "WriteForeign roundtrip Bytes serializes as human-readable",
312 {
313 "timestamp": "1771536964586.0",
314 "success": true
315 }
316 ],
317 [
318 "WriteForeign roundtrip Bytes sub-KB stays as B",
319 {
320 "timestamp": "1771536964586.0",
321 "success": true
322 }
323 ],
324 [
325 "WriteForeign roundtrip Duration roundtrips through serialization",
326 {
327 "timestamp": "1771536964586.0",
328 "success": true
329 }
330 ],
331 [
332 "WriteForeign roundtrip Duration serializes as human-readable",
333 {
334 "timestamp": "1771536964586.0",
335 "success": true
336 }
337 ],
338 [
339 "WriteForeign roundtrip Duration sub-second stays as ms",
340 {
341 "timestamp": "1771536964586.0",
342 "success": true
343 }
344 ],
345 [
346 "WriteForeign roundtrip NonBlank roundtrips",
347 {
348 "timestamp": "1771536964586.0",
349 "success": true
350 }
351 ],
352 [
353 "WriteForeign roundtrip Port roundtrips",
354 {
355 "timestamp": "1771536964586.0",
356 "success": true
357 }
358 ],
359 [
360 "WriteForeign roundtrip Secret roundtrips",
361 {
362 "timestamp": "1771536964586.0",
363 "success": true
364 }
365 ],
366 [
367 "env prefix type coercion coerces boolean env values",
368 {
369 "timestamp": "1771536964586.0",
370 "success": true
371 }
372 ],
373 [
374 "env prefix type coercion coerces numeric env values to numbers",
375 {
376 "timestamp": "1771536964586.0",
377 "success": true
378 }
379 ],
380 [
381 "env prefix type coercion keeps plain strings as strings",
382 {
383 "timestamp": "1771536964586.0",
384 "success": true
385 }
386 ],
387 [
388 "fromEnvPrefix reads env vars with prefix and nests by underscore",
389 {
390 "timestamp": "1771536964586.0",
391 "success": true
392 }
393 ],
394 [
395 "fromFile and fromFileOptional fromFile detects JSON extension",
396 {
397 "timestamp": "1771536964586.0",
398 "success": true
399 }
400 ],
401 [
402 "fromFile and fromFileOptional fromFile detects TOML extension",
403 {
404 "timestamp": "1771536964586.0",
405 "success": true
406 }
407 ],
408 [
409 "fromFile and fromFileOptional fromFile detects YAML extension",
410 {
411 "timestamp": "1771536964586.0",
412 "success": true
413 }
414 ],
415 [
416 "fromFile and fromFileOptional fromFile rejects unknown extension",
417 {
418 "timestamp": "1771536964586.0",
419 "success": true
420 }
421 ],
422 [
423 "fromFile and fromFileOptional fromFileOptional returns empty for missing file",
424 {
425 "timestamp": "1771536964586.0",
426 "success": true
427 }
428 ],
429 [
430 "fromFile and fromFileOptional fromJSONFile loads JSON",
431 {
432 "timestamp": "1771536964586.0",
433 "success": true
434 }
435 ],
436 [
437 "fromFile and fromFileOptional fromTOMLFile loads TOML",
438 {
439 "timestamp": "1771536964586.0",
440 "success": true
441 }
442 ],
443 [
444 "fromProfileDir loads default profile when env not set",
445 {
446 "timestamp": "1771536964586.0",
447 "success": true
448 }
449 ],
450 [
451 "fromProfileDir overlays profile-specific config",
452 {
453 "timestamp": "1771536964586.0",
454 "success": true
455 }
456 ],
457 [
458 "fromRecord creates a config source from a record",
459 {
460 "timestamp": "1771536964586.0",
461 "success": true
462 }
463 ],
464 [
465 "loadConfig loads from TOML string source",
466 {
467 "timestamp": "1771536964586.0",
468 "success": true
469 }
470 ],
471 [
472 "loadConfig loads from YAML string source",
473 {
474 "timestamp": "1771536964586.0",
475 "success": true
476 }
477 ],
478 [
479 "loadConfigFromSources merges multiple sources left to right",
480 {
481 "timestamp": "1771536964586.0",
482 "success": true
483 }
484 ],
485 [
486 "mkSecret masks in show",
487 {
488 "timestamp": "1771536964586.0",
489 "success": true
490 }
491 ],
492 [
493 "mkSecret wraps a value",
494 {
495 "timestamp": "1771536964586.0",
496 "success": true
497 }
498 ],
499 [
500 "override deep merges config sources with right taking precedence",
501 {
502 "timestamp": "1771536964586.0",
503 "success": true
504 }
505 ],
506 [
507 "readTOML parses TOML into a typed record",
508 {
509 "timestamp": "1771536964586.0",
510 "success": true
511 }
512 ],
513 [
514 "readYAML parses YAML into a typed record",
515 {
516 "timestamp": "1771536964586.0",
517 "success": true
518 }
519 ],
520 [
521 "readYAML returns Left for invalid YAML",
522 {
523 "timestamp": "1771536964586.0",
524 "success": true
525 }
526 ],
527 [
528 "real-world usage composes multiple sources: defaults, file, env",
529 {
530 "timestamp": "1771536964586.0",
531 "success": true
532 }
533 ],
534 [
535 "real-world usage loads typed config from YAML with env resolution",
536 {
537 "timestamp": "1771536964586.0",
538 "success": true
539 }
540 ],
541 [
542 "real-world usage overrides defaults with env-specific config",
543 {
544 "timestamp": "1771536964586.0",
545 "success": true
546 }
547 ],
548 [
549 "validation utils validateConfig returns Left with readable error for invalid source",
550 {
551 "timestamp": "1771536964586.0",
552 "success": true
553 }
554 ],
555 [
556 "validation utils validateConfig returns Right for valid source",
557 {
558 "timestamp": "1771536964586.0",
559 "success": true
560 }
561 ],
562 [
563 "validation utils validateConfig works with composed sources",
564 {
565 "timestamp": "1771536964586.0",
566 "success": true
567 }
568 ],
569 [
570 "validation utils validateJSON returns Left for invalid config",
571 {
572 "timestamp": "1771536964586.0",
573 "success": true
574 }
575 ],
576 [
577 "validation utils validateJSON returns Right for valid config",
578 {
579 "timestamp": "1771536964586.0",
580 "success": true
581 }
582 ],
583 [
584 "validation utils validateTOML returns Right for valid config",
585 {
586 "timestamp": "1771536964586.0",
587 "success": true
588 }
589 ],
590 [
591 "validation utils validateYAML returns Left with readable error for invalid config",
592 {
593 "timestamp": "1771536964586.0",
594 "success": true
595 }
596 ],
597 [
598 "validation utils validateYAML returns Right for valid config",
599 {
600 "timestamp": "1771536964586.0",
601 "success": true
602 }
603 ],
604 [
605 "withEnvResolution plain inline values pass through unchanged",
606 {
607 "timestamp": "1771536964586.0",
608 "success": true
609 }
610 ],
611 [
612 "withEnvResolution resolves env var references",
613 {
614 "timestamp": "1771536964586.0",
615 "success": true
616 }
617 ],
618 [
619 "withEnvResolution resolves nested env refs",
620 {
621 "timestamp": "1771536964586.0",
622 "success": true
623 }
624 ],
625 [
626 "withEnvResolution throws for missing env without default",
627 {
628 "timestamp": "1771536964586.0",
629 "success": true
630 }
631 ],
632 [
633 "withEnvResolution uses default when env var is missing",
634 {
635 "timestamp": "1771536964586.0",
636 "success": true
637 }
638 ]