@ix-xs/node-comfort 2.0.0 → 2.1.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 (77) hide show
  1. package/CHANGELOG.md +150 -0
  2. package/README.md +32 -30
  3. package/index.js +3 -3
  4. package/package.json +8 -7
  5. package/src/Arr.js +222 -58
  6. package/src/Async.js +322 -90
  7. package/src/Cache.js +148 -44
  8. package/src/Checker.js +257 -26
  9. package/src/Cli.js +404 -145
  10. package/src/Color.js +224 -83
  11. package/src/Crypto.js +481 -106
  12. package/src/Emitter.js +104 -37
  13. package/src/Env.js +176 -42
  14. package/src/FS.js +203 -60
  15. package/src/Func.js +226 -76
  16. package/src/Http.js +311 -149
  17. package/src/Id.js +281 -96
  18. package/src/Logger.js +302 -78
  19. package/src/Num.js +182 -60
  20. package/src/Obj.js +340 -125
  21. package/src/SQLite.js +426 -105
  22. package/src/Schema.js +602 -87
  23. package/src/Str.js +316 -86
  24. package/src/Sys.js +197 -54
  25. package/src/Time.js +572 -317
  26. package/src/Utils.js +62 -41
  27. package/src/errors.js +54 -11
  28. package/src/internal/shared.js +415 -0
  29. package/types/index.d.ts +59 -17
  30. package/types/src/Arr.d.ts +78 -0
  31. package/types/src/Arr.d.ts.map +1 -1
  32. package/types/src/Async.d.ts +52 -1
  33. package/types/src/Async.d.ts.map +1 -1
  34. package/types/src/Cache.d.ts +33 -7
  35. package/types/src/Cache.d.ts.map +1 -1
  36. package/types/src/Checker.d.ts +155 -2
  37. package/types/src/Checker.d.ts.map +1 -1
  38. package/types/src/Cli.d.ts +97 -15
  39. package/types/src/Cli.d.ts.map +1 -1
  40. package/types/src/Color.d.ts +7 -1
  41. package/types/src/Color.d.ts.map +1 -1
  42. package/types/src/Crypto.d.ts +99 -13
  43. package/types/src/Crypto.d.ts.map +1 -1
  44. package/types/src/Emitter.d.ts +36 -17
  45. package/types/src/Emitter.d.ts.map +1 -1
  46. package/types/src/Env.d.ts +31 -1
  47. package/types/src/Env.d.ts.map +1 -1
  48. package/types/src/FS.d.ts +36 -5
  49. package/types/src/FS.d.ts.map +1 -1
  50. package/types/src/Func.d.ts +147 -19
  51. package/types/src/Func.d.ts.map +1 -1
  52. package/types/src/Http.d.ts +113 -43
  53. package/types/src/Http.d.ts.map +1 -1
  54. package/types/src/Id.d.ts +60 -8
  55. package/types/src/Id.d.ts.map +1 -1
  56. package/types/src/Logger.d.ts +53 -2
  57. package/types/src/Logger.d.ts.map +1 -1
  58. package/types/src/Num.d.ts +48 -7
  59. package/types/src/Num.d.ts.map +1 -1
  60. package/types/src/Obj.d.ts +67 -4
  61. package/types/src/Obj.d.ts.map +1 -1
  62. package/types/src/SQLite.d.ts +123 -14
  63. package/types/src/SQLite.d.ts.map +1 -1
  64. package/types/src/Schema.d.ts +256 -7
  65. package/types/src/Schema.d.ts.map +1 -1
  66. package/types/src/Str.d.ts +49 -1
  67. package/types/src/Str.d.ts.map +1 -1
  68. package/types/src/Sys.d.ts +51 -6
  69. package/types/src/Sys.d.ts.map +1 -1
  70. package/types/src/Time.d.ts +130 -34
  71. package/types/src/Time.d.ts.map +1 -1
  72. package/types/src/Utils.d.ts +15 -11
  73. package/types/src/Utils.d.ts.map +1 -1
  74. package/types/src/errors.d.ts +27 -3
  75. package/types/src/errors.d.ts.map +1 -1
  76. package/types/src/internal/shared.d.ts +123 -0
  77. package/types/src/internal/shared.d.ts.map +1 -0
@@ -1,5 +1,5 @@
1
1
  declare namespace _exports {
2
- export { Infer, Shape, Simplify, ObjectOutput, SafeParseResult, Message, RefineOptions, ParseContext, Step, CoerceBuilders };
2
+ export { Infer, Shape, Simplify, ObjectOutput, SafeParseResult, Message, RefineOptions, ParseContext, Step, JSONSchema, _JSONContext, CoerceBuilders };
3
3
  }
4
4
  declare namespace _exports {
5
5
  export { string };
@@ -12,6 +12,7 @@ declare namespace _exports {
12
12
  export { array };
13
13
  export { object };
14
14
  export { union };
15
+ export { discriminatedUnion };
15
16
  export { tuple };
16
17
  export { record };
17
18
  export { lazy };
@@ -40,16 +41,19 @@ type Simplify<T> = { [K in keyof T]: T[K]; } & {};
40
41
  */
41
42
  type ObjectOutput<S extends Shape> = Simplify<{ [K in keyof S as undefined extends Infer<S[K]> ? never : K]: Infer<S[K]>; } & { [K in keyof S as undefined extends Infer<S[K]> ? K : never]?: Infer<S[K]>; }>;
42
43
  /**
43
- * What `safeParse()` returns.
44
+ * What `safeParse()` returns. On failure, `issues` is the plain list and
45
+ * `error` the same thing as a `ValidationError`, built when you read it.
44
46
  */
45
47
  type SafeParseResult<T> = {
46
48
  success: true;
47
49
  data: T;
48
50
  error?: undefined;
51
+ issues?: undefined;
49
52
  } | {
50
53
  success: false;
51
54
  data?: undefined;
52
55
  error: ValidationError;
56
+ issues: import("./errors").ValidationIssue[];
53
57
  };
54
58
  /**
55
59
  * An error message: a string, or a function that gets the invalid value.
@@ -77,7 +81,8 @@ type ParseContext = {
77
81
  path: Array<string | number>;
78
82
  };
79
83
  /**
80
- * A step in a schema: a check, a transformation or a refinement.
84
+ * A step in a schema: a check, a transformation, a refinement or a pipe
85
+ * into another schema.
81
86
  */
82
87
  type Step = {
83
88
  kind: "check";
@@ -85,6 +90,7 @@ type Step = {
85
90
  code: string;
86
91
  message: Message;
87
92
  details?: Record<string, unknown>;
93
+ json?: Record<string, unknown>;
88
94
  } | {
89
95
  kind: "transform";
90
96
  fn: (value: any) => any;
@@ -92,6 +98,19 @@ type Step = {
92
98
  kind: "refine";
93
99
  test: (value: any) => boolean;
94
100
  options: RefineOptions;
101
+ } | {
102
+ kind: "pipe";
103
+ schema: Schema<any>;
104
+ };
105
+ /**
106
+ * A JSON Schema, as made by `toJSONSchema()`.
107
+ */
108
+ type JSONSchema = {
109
+ [keyword: string]: any;
110
+ };
111
+ type _JSONContext = {
112
+ defs: Record<string, JSONSchema>;
113
+ names: Map<Schema<any>, string>;
95
114
  };
96
115
  /**
97
116
  * The `s.coerce` builders.
@@ -233,6 +252,24 @@ declare function object<S extends Shape>(shape: S): ObjectSchema<S>;
233
252
  * @returns {UnionSchema<Infer<U[number]>>}
234
253
  */
235
254
  declare function union<U extends ReadonlyArray<Schema<any>>>(options: U): UnionSchema<Infer<U[number]>>;
255
+ /**
256
+ * A union of objects told apart by one key, like the `type` of an event.
257
+ * Unlike `union()`, it goes straight to the right schema, and a wrong
258
+ * object gets the errors of the kind it claims to be.
259
+ *
260
+ * @example
261
+ * const Event = s.discriminatedUnion("type", [
262
+ * s.object({ type: s.literal("click"), x: s.number(), y: s.number() }),
263
+ * s.object({ type: s.literal("key"), key: s.string() }),
264
+ * ]);
265
+ * Event.parse({ type: "key", key: "Enter" });
266
+ *
267
+ * @template {ReadonlyArray<ObjectSchema<any>>} U
268
+ * @param {string} key The key every option has, with a different literal in each.
269
+ * @param {U} options
270
+ * @returns {DiscriminatedUnionSchema<Infer<U[number]>>}
271
+ */
272
+ declare function discriminatedUnion<U extends ReadonlyArray<ObjectSchema<any>>>(key: string, options: U): DiscriminatedUnionSchema<Infer<U[number]>>;
236
273
  /**
237
274
  * A fixed-length array with one schema per position.
238
275
  *
@@ -404,7 +441,7 @@ declare class Schema<T = unknown> {
404
441
  */
405
442
  safeParse(value: unknown): SafeParseResult<T>;
406
443
  /**
407
- * Is the value valid? Works as a type guard. Transformations don't run.
444
+ * Is the value valid? Works as a type guard, and builds no error.
408
445
  *
409
446
  * @example
410
447
  * if (Email.is(input)) sendMail(input); // input is a string here
@@ -499,6 +536,53 @@ declare class Schema<T = unknown> {
499
536
  * @returns {ArraySchema<T>}
500
537
  */
501
538
  array(): ArraySchema<T>;
539
+ /**
540
+ * Sends the result into another schema. With `transform()` in between,
541
+ * it validates what a conversion produced.
542
+ *
543
+ * @example
544
+ * const Port = s.string().transform(Number).pipe(s.number().int().min(1).max(65535));
545
+ * Port.parse("8080"); // 8080
546
+ * Port.parse("abc"); // ValidationError: Expected number, received NaN
547
+ *
548
+ * @template U
549
+ * @param {Schema<U>} next
550
+ * @returns {Schema<U>}
551
+ */
552
+ pipe<U>(next: Schema<U>): Schema<U>;
553
+ /**
554
+ * Describes what this schema accepts as a JSON Schema (draft 2020-12).
555
+ * Use it for an OpenAPI document, a form generator, or the input of a
556
+ * tool you give to a language model. Rules that only exist in code,
557
+ * like `refine()`, `transform()` and what follows a `pipe()`, can't be
558
+ * expressed and are left out.
559
+ *
560
+ * @example
561
+ * s.object({ name: s.string().min(2), age: s.number().int().optional() }).toJSONSchema();
562
+ * // {
563
+ * // type: "object",
564
+ * // properties: { name: { type: "string", minLength: 2 }, age: { type: "integer" } },
565
+ * // required: ["name"],
566
+ * // }
567
+ *
568
+ * @returns {JSONSchema}
569
+ */
570
+ toJSONSchema(): JSONSchema;
571
+ /**
572
+ * The JSON Schema of the type itself. Subclasses override it.
573
+ * @param {_JSONContext} _ctx
574
+ * @returns {JSONSchema}
575
+ * @protected
576
+ */
577
+ protected _json(_ctx: _JSONContext): JSONSchema;
578
+ /**
579
+ * The JSON Schema with what every schema can carry: rules, `null`,
580
+ * a description, a default.
581
+ * @param {_JSONContext} ctx
582
+ * @returns {JSONSchema}
583
+ * @protected
584
+ */
585
+ protected _toJSON(ctx: _JSONContext): JSONSchema;
502
586
  /**
503
587
  * Attaches a description, available as `.description`. Useful to generate
504
588
  * docs or forms.
@@ -525,10 +609,11 @@ declare class StringSchema extends Schema<string> {
525
609
  * @param {string} code
526
610
  * @param {Message} message
527
611
  * @param {Record<string, unknown>} [details]
612
+ * @param {Record<string, unknown>} [json] What the rule is called in JSON Schema.
528
613
  * @returns {this}
529
614
  * @protected
530
615
  */
531
- protected _rule(test: (v: string) => boolean, code: string, message: Message, details?: Record<string, unknown>): this;
616
+ protected _rule(test: (v: string) => boolean, code: string, message: Message, details?: Record<string, unknown>, json?: Record<string, unknown>): this;
532
617
  /**
533
618
  * At least `length` characters.
534
619
  * @param {number} length
@@ -633,6 +718,54 @@ declare class StringSchema extends Schema<string> {
633
718
  * @returns {this}
634
719
  */
635
720
  toUpperCase(): this;
721
+ /**
722
+ * A calendar date like `2024-01-31`, without a time.
723
+ * @param {Message} [message]
724
+ * @returns {this}
725
+ */
726
+ date(message?: Message): this;
727
+ /**
728
+ * A URL slug like `my-first-post`: lowercase letters, digits and single dashes.
729
+ * @param {Message} [message]
730
+ * @returns {this}
731
+ */
732
+ slug(message?: Message): this;
733
+ /**
734
+ * Hexadecimal digits only.
735
+ * @param {Message} [message]
736
+ * @returns {this}
737
+ */
738
+ hex(message?: Message): this;
739
+ /**
740
+ * Base64 data.
741
+ * @param {Message} [message]
742
+ * @returns {this}
743
+ */
744
+ base64(message?: Message): this;
745
+ /**
746
+ * A ULID.
747
+ * @param {Message} [message]
748
+ * @returns {this}
749
+ */
750
+ ulid(message?: Message): this;
751
+ /**
752
+ * A semantic version like `1.4.0` or `2.0.0-beta.1`.
753
+ * @param {Message} [message]
754
+ * @returns {this}
755
+ */
756
+ semver(message?: Message): this;
757
+ /**
758
+ * A host name like `api.example.com`.
759
+ * @param {Message} [message]
760
+ * @returns {this}
761
+ */
762
+ hostname(message?: Message): this;
763
+ /**
764
+ * @returns {JSONSchema}
765
+ * @override
766
+ * @protected
767
+ */
768
+ protected override _json(): JSONSchema;
636
769
  }
637
770
  /**
638
771
  * A number schema.
@@ -648,10 +781,11 @@ declare class NumberSchema extends Schema<number> {
648
781
  * @param {string} code
649
782
  * @param {Message} message
650
783
  * @param {Record<string, unknown>} [details]
784
+ * @param {Record<string, unknown>} [json] What the rule is called in JSON Schema.
651
785
  * @returns {this}
652
786
  * @protected
653
787
  */
654
- protected _rule(test: (v: number) => boolean, code: string, message: Message, details?: Record<string, unknown>): this;
788
+ protected _rule(test: (v: number) => boolean, code: string, message: Message, details?: Record<string, unknown>, json?: Record<string, unknown>): this;
655
789
  /**
656
790
  * At least `value`.
657
791
  * @param {number} value
@@ -697,6 +831,33 @@ declare class NumberSchema extends Schema<number> {
697
831
  * @returns {this}
698
832
  */
699
833
  multipleOf(step: number, message?: Message): this;
834
+ /**
835
+ * Greater than `value`, which itself is refused.
836
+ * @param {number} value
837
+ * @param {Message} [message]
838
+ * @returns {this}
839
+ */
840
+ gt(value: number, message?: Message): this;
841
+ /**
842
+ * Less than `value`, which itself is refused.
843
+ * @param {number} value
844
+ * @param {Message} [message]
845
+ * @returns {this}
846
+ */
847
+ lt(value: number, message?: Message): this;
848
+ /**
849
+ * An integer JavaScript can hold exactly: up to 2^53 - 1 either way.
850
+ * Ids from a database or an API should pass this before any arithmetic.
851
+ * @param {Message} [message]
852
+ * @returns {this}
853
+ */
854
+ safe(message?: Message): this;
855
+ /**
856
+ * @returns {JSONSchema}
857
+ * @override
858
+ * @protected
859
+ */
860
+ protected override _json(): JSONSchema;
700
861
  }
701
862
  /**
702
863
  * A boolean schema.
@@ -707,6 +868,12 @@ declare class BooleanSchema extends Schema<boolean> {
707
868
  constructor();
708
869
  /** @protected */
709
870
  protected _coerce: boolean;
871
+ /**
872
+ * @returns {JSONSchema}
873
+ * @override
874
+ * @protected
875
+ */
876
+ protected override _json(): JSONSchema;
710
877
  }
711
878
  /**
712
879
  * A date schema.
@@ -731,6 +898,12 @@ declare class DateSchema extends Schema<Date> {
731
898
  * @returns {this}
732
899
  */
733
900
  max(date: Date | number | string, message?: Message): this;
901
+ /**
902
+ * @returns {JSONSchema}
903
+ * @override
904
+ * @protected
905
+ */
906
+ protected override _json(): JSONSchema;
734
907
  }
735
908
  /**
736
909
  * A bigint schema.
@@ -741,6 +914,12 @@ declare class BigIntSchema extends Schema<bigint> {
741
914
  constructor();
742
915
  /** @protected */
743
916
  protected _coerce: boolean;
917
+ /**
918
+ * @returns {JSONSchema}
919
+ * @override
920
+ * @protected
921
+ */
922
+ protected override _json(): JSONSchema;
744
923
  }
745
924
  /**
746
925
  * A schema that accepts a fixed set of values.
@@ -753,6 +932,14 @@ declare class LiteralSchema<T> extends Schema<T> {
753
932
  constructor(values: readonly T[]);
754
933
  /** @protected */
755
934
  protected _values: readonly T[];
935
+ /** @protected @type {Set<unknown>} */
936
+ protected _set: Set<unknown>;
937
+ /**
938
+ * @returns {JSONSchema}
939
+ * @override
940
+ * @protected
941
+ */
942
+ protected override _json(): JSONSchema;
756
943
  /** The accepted values. */
757
944
  get options(): T[];
758
945
  }
@@ -771,10 +958,12 @@ declare class ArraySchema<T> extends Schema<T[]> {
771
958
  * @param {(v: T[]) => boolean} test
772
959
  * @param {string} code
773
960
  * @param {Message} message
961
+ * @param {Record<string, unknown>} [details]
962
+ * @param {Record<string, unknown>} [json]
774
963
  * @returns {this}
775
964
  * @protected
776
965
  */
777
- protected _rule(test: (v: T[]) => boolean, code: string, message: Message): this;
966
+ protected _rule(test: (v: T[]) => boolean, code: string, message: Message, details?: Record<string, unknown>, json?: Record<string, unknown>): this;
778
967
  /**
779
968
  * At least `count` items.
780
969
  * @param {number} count
@@ -825,6 +1014,17 @@ declare class ObjectSchema<S extends Shape> extends Schema<{ [K_1 in keyof S as
825
1014
  protected _unknown: "strip" | "strict" | "passthrough";
826
1015
  /** @protected */
827
1016
  protected _shape: S;
1017
+ /** @protected @type {string[]} */
1018
+ protected _keys: string[];
1019
+ /** @protected @type {Array<Schema<any>>} */
1020
+ protected _schemas: Array<Schema<any>>;
1021
+ /**
1022
+ * A schema with another shape that keeps how this one treats unknown keys.
1023
+ * @param {Shape} shape
1024
+ * @returns {any}
1025
+ * @protected
1026
+ */
1027
+ protected _reshape(shape: Shape): any;
828
1028
  /** The schema of each key. */
829
1029
  get shape(): S;
830
1030
  /**
@@ -863,6 +1063,34 @@ declare class ObjectSchema<S extends Shape> extends Schema<{ [K_1 in keyof S as
863
1063
  * @returns {ObjectSchema<{ [K in keyof S]: Schema<Infer<S[K]> | undefined> }>}
864
1064
  */
865
1065
  partial(): ObjectSchema<{ [K_3 in keyof S]: Schema<Infer<S[K_3]> | undefined>; }>;
1066
+ /**
1067
+ * Makes every key required again: the opposite of `partial()`.
1068
+ * @returns {ObjectSchema<{ [K in keyof S]: Schema<Exclude<Infer<S[K]>, undefined>> }>}
1069
+ */
1070
+ required(): ObjectSchema<{ [K_3 in keyof S]: Schema<Exclude<Infer<S[K_3]>, undefined>>; }>;
1071
+ /**
1072
+ * Combines two object schemas. Keys of the other one win, and so does
1073
+ * its way of treating unknown keys.
1074
+ *
1075
+ * @example
1076
+ * const Timestamps = s.object({ createdAt: s.date(), updatedAt: s.date() });
1077
+ * const Post = s.object({ title: s.string() }).merge(Timestamps);
1078
+ *
1079
+ * @template {Shape} M
1080
+ * @param {ObjectSchema<M>} other
1081
+ * @returns {ObjectSchema<Omit<S, keyof M> & M>}
1082
+ */
1083
+ merge<M extends Shape>(other: ObjectSchema<M>): ObjectSchema<Omit<S, keyof M> & M>;
1084
+ /**
1085
+ * A schema that accepts the name of any key: handy for a `sort` or
1086
+ * `fields` query parameter.
1087
+ *
1088
+ * @example
1089
+ * const SortBy = User.keyof(); // "name" | "email" | "age" | "role"
1090
+ *
1091
+ * @returns {LiteralSchema<keyof S & string>}
1092
+ */
1093
+ keyof(): LiteralSchema<keyof S & string>;
866
1094
  }
867
1095
  /**
868
1096
  * A schema that accepts any of several schemas.
@@ -876,6 +1104,25 @@ declare class UnionSchema<T> extends Schema<T> {
876
1104
  /** @protected */
877
1105
  protected _options: readonly Schema<any>[];
878
1106
  }
1107
+ /**
1108
+ * A union of objects told apart by one key.
1109
+ *
1110
+ * @template T
1111
+ * @extends {Schema<T>}
1112
+ */
1113
+ declare class DiscriminatedUnionSchema<T> extends Schema<T> {
1114
+ /**
1115
+ * @param {string} key
1116
+ * @param {ReadonlyArray<ObjectSchema<any>>} options
1117
+ */
1118
+ constructor(key: string, options: ReadonlyArray<ObjectSchema<any>>);
1119
+ /** @protected */
1120
+ protected _key: string;
1121
+ /** @protected */
1122
+ protected _options: readonly ObjectSchema<any>[];
1123
+ /** @protected @type {Map<unknown, Schema<any>>} */
1124
+ protected _byValue: Map<unknown, Schema<any>>;
1125
+ }
879
1126
  /**
880
1127
  * A fixed-length array schema.
881
1128
  *
@@ -916,6 +1163,8 @@ declare class LazySchema<T> extends Schema<T> {
916
1163
  constructor(getter: () => Schema<T>);
917
1164
  /** @protected */
918
1165
  protected _getter: () => Schema<T>;
1166
+ /** @protected @type {Schema<T> | undefined} */
1167
+ protected _resolved: Schema<T> | undefined;
919
1168
  }
920
1169
  /**
921
1170
  * A schema built from a test function.
@@ -1 +1 @@
1
- {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/Schema.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/Schema.js"],"names":[],"mappings":"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"}
@@ -24,9 +24,13 @@ export type TruncateOptions = {
24
24
  */
25
25
  omission?: string | undefined;
26
26
  /**
27
- * Cut at the previous space rather than inside a word.
27
+ * Cut at the previous space rather than inside a word, when the end is what gets cut.
28
28
  */
29
29
  words?: boolean | undefined;
30
+ /**
31
+ * Where the text is cut. `"middle"` keeps both ends, which suits paths and ids. Defaults to `"end"`.
32
+ */
33
+ position?: "end" | "middle" | "start" | undefined;
30
34
  };
31
35
  /**
32
36
  * Options for `template()`.
@@ -183,6 +187,38 @@ export type RandomStringOptions = {
183
187
  * @returns {string}
184
188
  */
185
189
  export function capitalize(input: unknown): string;
190
+ /**
191
+ * Uppercases the first character and leaves the rest alone.
192
+ *
193
+ * @example
194
+ * str.upperFirst("userName"); // "UserName"
195
+ *
196
+ * @param {unknown} input
197
+ * @returns {string}
198
+ */
199
+ export function upperFirst(input: unknown): string;
200
+ /**
201
+ * Lowercases the first character and leaves the rest alone.
202
+ *
203
+ * @example
204
+ * str.lowerFirst("UserName"); // "userName"
205
+ *
206
+ * @param {unknown} input
207
+ * @returns {string}
208
+ */
209
+ export function lowerFirst(input: unknown): string;
210
+ /**
211
+ * Turns an identifier into a label people can read. Acronyms stay as they are.
212
+ *
213
+ * @example
214
+ * str.humanize("user_first_name"); // "User first name"
215
+ * str.humanize("createdAt"); // "Created at"
216
+ * str.humanize("userID"); // "User ID"
217
+ *
218
+ * @param {unknown} input
219
+ * @returns {string}
220
+ */
221
+ export function humanize(input: unknown): string;
186
222
  /**
187
223
  * Uppercases the first letter of each word and leaves the rest alone.
188
224
  *
@@ -405,6 +441,18 @@ export function count(input: unknown, search: string): number;
405
441
  * @returns {string}
406
442
  */
407
443
  export function truncate(input: unknown, length: number, options?: TruncateOptions): string;
444
+ /**
445
+ * Splits text into pieces of `size` visible characters. The last one can be
446
+ * shorter.
447
+ *
448
+ * @example
449
+ * str.chunk("4242424242424242", 4).join(" "); // "4242 4242 4242 4242"
450
+ *
451
+ * @param {unknown} input
452
+ * @param {number} size
453
+ * @returns {string[]}
454
+ */
455
+ export function chunk(input: unknown, size: number): string[];
408
456
  /**
409
457
  * Returns the text between `start` and the next `end`, or `undefined` if a
410
458
  * marker is missing.
@@ -1 +1 @@
1
- {"version":3,"file":"Str.d.ts","sourceRoot":"","sources":["../../src/Str.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Str.d.ts","sourceRoot":"","sources":["../../src/Str.js"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ export type RunOptions = {
7
7
  */
8
8
  cwd?: string | undefined;
9
9
  /**
10
- * Extra environment variables, added to `process.env`.
10
+ * Extra environment variables, added to `process.env`. `undefined` removes one.
11
11
  */
12
12
  env?: Record<string, string | undefined> | undefined;
13
13
  /**
@@ -19,11 +19,11 @@ export type RunOptions = {
19
19
  */
20
20
  input?: string | Buffer<ArrayBufferLike> | undefined;
21
21
  /**
22
- * Kill the command after this long, like `"30s"`.
22
+ * Kill the command after this long, like `"30s"`. On Windows, what it started is stopped with it.
23
23
  */
24
24
  timeout?: string | number | undefined;
25
25
  /**
26
- * Kills the command when aborted.
26
+ * Kills the command when aborted. On Windows, what it started is stopped with it.
27
27
  */
28
28
  signal?: AbortSignal | undefined;
29
29
  /**
@@ -84,6 +84,11 @@ export type ShutdownOptions = {
84
84
  */
85
85
  signals?: NodeJS.Signals[] | undefined;
86
86
  };
87
+ /**
88
+ * Why the process is stopping: the signal it got, or `"shutdown"` when
89
+ * `sys.shutdown()` was called.
90
+ */
91
+ export type ShutdownReason = NodeJS.Signals | "shutdown";
87
92
  /**
88
93
  * Returned by `info()`.
89
94
  */
@@ -198,13 +203,53 @@ export function open(target: string): boolean;
198
203
  * @example
199
204
  * const server = app.listen(3000);
200
205
  * sys.onShutdown(() => new Promise((done) => server.close(done)));
201
- * sys.onShutdown(() => db.close());
206
+ * sys.onShutdown((reason) => log.info(`Stopping (${reason})`));
202
207
  *
203
- * @param {() => unknown} handler Can be async.
208
+ * @param {(reason: ShutdownReason) => unknown} handler Can be async. Gets the signal that stopped the process.
204
209
  * @param {ShutdownOptions} [options]
205
210
  * @returns {() => void} Removes the handler.
206
211
  */
207
- export function onShutdown(handler: () => unknown, options?: ShutdownOptions): () => void;
212
+ export function onShutdown(handler: (reason: ShutdownReason) => unknown, options?: ShutdownOptions): () => void;
213
+ /**
214
+ * Stops the process the clean way: runs the `onShutdown()` handlers, then
215
+ * exits. Use it instead of `process.exit()` when something goes wrong for
216
+ * good, so servers and databases still get closed.
217
+ *
218
+ * @example
219
+ * process.on("uncaughtException", (error) => {
220
+ * log.fatal(error);
221
+ * sys.shutdown(1);
222
+ * });
223
+ *
224
+ * @param {number} [exitCode] Defaults to the `exitCode` given to `onShutdown()`, or `0`. A failing handler makes it `1`.
225
+ * @returns {Promise<void>} Never resolves: the process exits first.
226
+ */
227
+ export function shutdown(exitCode?: number): Promise<void>;
228
+ /**
229
+ * Finds a TCP port nobody is listening on. Give a preferred port to get it
230
+ * back when it's free, and another one when it's taken.
231
+ *
232
+ * @example
233
+ * const port = await sys.freePort(3000); // 3000, or a free one if 3000 is in use
234
+ * app.listen(port);
235
+ *
236
+ * @param {number} [preferred] Tried first.
237
+ * @param {string} [host] The address to check. Defaults to all of them.
238
+ * @returns {Promise<number>}
239
+ */
240
+ export function freePort(preferred?: number, host?: string): Promise<number>;
241
+ /**
242
+ * The address of this machine on the local network, like `"192.168.1.20"`.
243
+ * It's what you print next to `localhost` so a phone on the same Wi-Fi can
244
+ * reach a dev server.
245
+ *
246
+ * @example
247
+ * console.log(`http://${sys.localIP() ?? "localhost"}:3000`);
248
+ *
249
+ * @param {4 | 6} [family=4] IPv4 or IPv6.
250
+ * @returns {string | undefined} `undefined` when the machine has no network.
251
+ */
252
+ export function localIP(family?: 4 | 6): string | undefined;
208
253
  /**
209
254
  * Are we on Windows?
210
255
  * @returns {boolean}
@@ -1 +1 @@
1
- {"version":3,"file":"Sys.d.ts","sourceRoot":"","sources":["../../src/Sys.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAgCqB,MAAM,KAAK,IAAI;;;;uBACf,MAAM,KAAK,IAAI;;;;;;;;;;;;;;;;;aAQtB,MAAM;YACN,MAAM;YACN,MAAM;;;;cACN,MAAM,GAAG,IAAI;YACb,MAAM,GAAG,IAAI;;;;cACb,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;cAcN,MAAM,CAAC,QAAQ;;;;UACf,MAAM;;;;aACN,MAAM;;;;UACN,MAAM;;;;UACN,MAAM;cACN,MAAM;;;;YACN;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;;;;YAC7C,MAAM;cACN,MAAM;UACN,MAAM;SACN,MAAM;;;;QACN,OAAO;;;;YACP,OAAO;;;;SACP,OAAO;;AA2IrB;;;;;;;;;;;;;;;GAeG;AACH,0BANW,MAAM,SACN,MAAM,EAAE,YACR,UAAU,GACR,OAAO,CAAC,SAAS,CAAC,CAM9B;AAED;;;;;;;;;;;;GAYG;AACH,8BALW,MAAM,YACN,UAAU,GACR,OAAO,CAAC,SAAS,CAAC,CAK9B;AAED;;;;;;;;;GASG;AACH,+BAHW,MAAM,GACJ,MAAM,GAAG,SAAS,CAwB9B;AAED;;;;;;;;GAQG;AACH,6BAHW,MAAM,GACJ,OAAO,CAenB;AASD;;;;;;;;;;;;;;GAcG;AACH,oCAJW,MAAM,OAAO,YACb,eAAe,GACb,MAAM,IAAI,CAyBtB;AA6BD;;;GAGG;AACH,6BAFa,OAAO,CAInB;AAED;;;GAGG;AACH,yBAFa,OAAO,CAInB;AAED;;;GAGG;AACH,2BAFa,OAAO,CAInB;AAED;;;;;;;;GAQG;AACH,wBAFa,OAAO,CAUnB;AAED;;;;GAIG;AACH,4BAFa,OAAO,CAUnB;AAED;;;;GAIG;AACH,yBAFa,OAAO,CAInB;AAED;;;;;;;GAOG;AACH,wBAFa,UAAU,CA0BtB;AAED;;;;;;;GAOG;AACH,0BAFa;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAKxG"}
1
+ {"version":3,"file":"Sys.d.ts","sourceRoot":"","sources":["../../src/Sys.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAqCqB,MAAM,KAAK,IAAI;;;;uBACf,MAAM,KAAK,IAAI;;;;;;;;;;;;;;;;;aAQtB,MAAM;YACN,MAAM;YACN,MAAM;;;;cACN,MAAM,GAAG,IAAI;YACb,MAAM,GAAG,IAAI;;;;cACb,MAAM;;;;;;;;;;;;;;;;;;;;;;;6BAcP,MAAM,CAAC,OAAO,GAAG,UAAU;;;;;;;;cAM1B,MAAM,CAAC,QAAQ;;;;UACf,MAAM;;;;aACN,MAAM;;;;UACN,MAAM;;;;UACN,MAAM;cACN,MAAM;;;;YACN;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;;;;YAC7C,MAAM;cACN,MAAM;UACN,MAAM;SACN,MAAM;;;;QACN,OAAO;;;;YACP,OAAO;;;;SACP,OAAO;;AA0KrB;;;;;;;;;;;;;;;GAeG;AACH,0BANW,MAAM,SACN,MAAM,EAAE,YACR,UAAU,GACR,OAAO,CAAC,SAAS,CAAC,CAM9B;AAED;;;;;;;;;;;;GAYG;AACH,8BALW,MAAM,YACN,UAAU,GACR,OAAO,CAAC,SAAS,CAAC,CAK9B;AAgBD;;;;;;;;;GASG;AACH,+BAHW,MAAM,GACJ,MAAM,GAAG,SAAS,CA8B9B;AAED;;;;;;;;GAQG;AACH,6BAHW,MAAM,GACJ,OAAO,CAenB;AAUD;;;;;;;;;;;;;;GAcG;AACH,oCAJW,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,YACnC,eAAe,GACb,MAAM,IAAI,CAsBtB;AAgCD;;;;;;;;;;;;;GAaG;AACH,oCAHW,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC,CAIzB;AA2GD;;;;;;;;;;;GAWG;AACH,qCAJW,MAAM,SACN,MAAM,GACJ,OAAO,CAAC,MAAM,CAAC,CAqB3B;AAED;;;;;;;;;;GAUG;AACH,iCAHW,CAAC,GAAG,CAAC,GACH,MAAM,GAAG,SAAS,CAW9B;AA9JD;;;GAGG;AACH,6BAFa,OAAO,CAInB;AAED;;;GAGG;AACH,yBAFa,OAAO,CAInB;AAED;;;GAGG;AACH,2BAFa,OAAO,CAInB;AAED;;;;;;;;GAQG;AACH,wBAFa,OAAO,CAUnB;AAKD;;;;GAIG;AACH,4BAFa,OAAO,CAWnB;AAED;;;;GAIG;AACH,yBAFa,OAAO,CAInB;AAED;;;;;;;GAOG;AACH,wBAFa,UAAU,CA0BtB;AAyDD;;;;;;;GAOG;AACH,0BAFa;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAKxG"}