@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.
- package/CHANGELOG.md +150 -0
- package/README.md +32 -30
- package/index.js +3 -3
- package/package.json +8 -7
- package/src/Arr.js +222 -58
- package/src/Async.js +322 -90
- package/src/Cache.js +148 -44
- package/src/Checker.js +257 -26
- package/src/Cli.js +404 -145
- package/src/Color.js +224 -83
- package/src/Crypto.js +481 -106
- package/src/Emitter.js +104 -37
- package/src/Env.js +176 -42
- package/src/FS.js +203 -60
- package/src/Func.js +226 -76
- package/src/Http.js +311 -149
- package/src/Id.js +281 -96
- package/src/Logger.js +302 -78
- package/src/Num.js +182 -60
- package/src/Obj.js +340 -125
- package/src/SQLite.js +426 -105
- package/src/Schema.js +602 -87
- package/src/Str.js +316 -86
- package/src/Sys.js +197 -54
- package/src/Time.js +572 -317
- package/src/Utils.js +62 -41
- package/src/errors.js +54 -11
- package/src/internal/shared.js +415 -0
- package/types/index.d.ts +59 -17
- package/types/src/Arr.d.ts +78 -0
- package/types/src/Arr.d.ts.map +1 -1
- package/types/src/Async.d.ts +52 -1
- package/types/src/Async.d.ts.map +1 -1
- package/types/src/Cache.d.ts +33 -7
- package/types/src/Cache.d.ts.map +1 -1
- package/types/src/Checker.d.ts +155 -2
- package/types/src/Checker.d.ts.map +1 -1
- package/types/src/Cli.d.ts +97 -15
- package/types/src/Cli.d.ts.map +1 -1
- package/types/src/Color.d.ts +7 -1
- package/types/src/Color.d.ts.map +1 -1
- package/types/src/Crypto.d.ts +99 -13
- package/types/src/Crypto.d.ts.map +1 -1
- package/types/src/Emitter.d.ts +36 -17
- package/types/src/Emitter.d.ts.map +1 -1
- package/types/src/Env.d.ts +31 -1
- package/types/src/Env.d.ts.map +1 -1
- package/types/src/FS.d.ts +36 -5
- package/types/src/FS.d.ts.map +1 -1
- package/types/src/Func.d.ts +147 -19
- package/types/src/Func.d.ts.map +1 -1
- package/types/src/Http.d.ts +113 -43
- package/types/src/Http.d.ts.map +1 -1
- package/types/src/Id.d.ts +60 -8
- package/types/src/Id.d.ts.map +1 -1
- package/types/src/Logger.d.ts +53 -2
- package/types/src/Logger.d.ts.map +1 -1
- package/types/src/Num.d.ts +48 -7
- package/types/src/Num.d.ts.map +1 -1
- package/types/src/Obj.d.ts +67 -4
- package/types/src/Obj.d.ts.map +1 -1
- package/types/src/SQLite.d.ts +123 -14
- package/types/src/SQLite.d.ts.map +1 -1
- package/types/src/Schema.d.ts +256 -7
- package/types/src/Schema.d.ts.map +1 -1
- package/types/src/Str.d.ts +49 -1
- package/types/src/Str.d.ts.map +1 -1
- package/types/src/Sys.d.ts +51 -6
- package/types/src/Sys.d.ts.map +1 -1
- package/types/src/Time.d.ts +130 -34
- package/types/src/Time.d.ts.map +1 -1
- package/types/src/Utils.d.ts +15 -11
- package/types/src/Utils.d.ts.map +1 -1
- package/types/src/errors.d.ts +27 -3
- package/types/src/errors.d.ts.map +1 -1
- package/types/src/internal/shared.d.ts +123 -0
- package/types/src/internal/shared.d.ts.map +1 -0
package/types/src/Arr.d.ts
CHANGED
|
@@ -49,6 +49,23 @@ export type Page<T> = {
|
|
|
49
49
|
hasPrev: boolean;
|
|
50
50
|
hasNext: boolean;
|
|
51
51
|
};
|
|
52
|
+
/**
|
|
53
|
+
* Options for `toSentence()`.
|
|
54
|
+
*/
|
|
55
|
+
export type ToSentenceOptions = {
|
|
56
|
+
/**
|
|
57
|
+
* Language of the joining word. Defaults to `"en"`.
|
|
58
|
+
*/
|
|
59
|
+
locale?: string | undefined;
|
|
60
|
+
/**
|
|
61
|
+
* `"conjunction"` joins with "and", `"disjunction"` with "or", `"unit"` with commas only. Defaults to `"conjunction"`.
|
|
62
|
+
*/
|
|
63
|
+
type?: "conjunction" | "disjunction" | "unit" | undefined;
|
|
64
|
+
/**
|
|
65
|
+
* Defaults to `"long"`.
|
|
66
|
+
*/
|
|
67
|
+
style?: "long" | "short" | "narrow" | undefined;
|
|
68
|
+
};
|
|
52
69
|
/**
|
|
53
70
|
* Splits an array into groups of `size` items. The last group can be shorter.
|
|
54
71
|
*
|
|
@@ -559,4 +576,65 @@ export function maxBy<T>(array: readonly T[], iteratee?: Iteratee<T>): T | undef
|
|
|
559
576
|
* @returns {T | undefined}
|
|
560
577
|
*/
|
|
561
578
|
export function minBy<T>(array: readonly T[], iteratee?: Iteratee<T>): T | undefined;
|
|
579
|
+
/**
|
|
580
|
+
* The items that appear more than once, each listed once.
|
|
581
|
+
*
|
|
582
|
+
* @example
|
|
583
|
+
* arr.duplicates([1, 2, 2, 3, 3, 3]); // [2, 3]
|
|
584
|
+
* arr.duplicates(users, "email"); // users whose email is taken by an earlier one
|
|
585
|
+
*
|
|
586
|
+
* @template T
|
|
587
|
+
* @param {readonly T[]} array
|
|
588
|
+
* @param {Iteratee<T>} [iteratee] What makes two items "the same". Defaults to the item itself.
|
|
589
|
+
* @returns {T[]} For each repeated value, its second occurrence.
|
|
590
|
+
*/
|
|
591
|
+
export function duplicates<T>(array: readonly T[], iteratee?: Iteratee<T>): T[];
|
|
592
|
+
/**
|
|
593
|
+
* Items found in exactly one of the arrays, without duplicates.
|
|
594
|
+
*
|
|
595
|
+
* @example
|
|
596
|
+
* arr.xor([1, 2, 3], [2, 3, 4]); // [1, 4]
|
|
597
|
+
*
|
|
598
|
+
* @template T
|
|
599
|
+
* @param {...ReadonlyArray<T>} arrays
|
|
600
|
+
* @returns {T[]}
|
|
601
|
+
*/
|
|
602
|
+
export function xor<T>(...arrays: ReadonlyArray<T>[]): T[];
|
|
603
|
+
/**
|
|
604
|
+
* The items from the start, up to the first one that fails the test.
|
|
605
|
+
*
|
|
606
|
+
* @example
|
|
607
|
+
* arr.takeWhile([1, 2, 5, 1], (n) => n < 3); // [1, 2]
|
|
608
|
+
*
|
|
609
|
+
* @template T
|
|
610
|
+
* @param {readonly T[]} array
|
|
611
|
+
* @param {(item: T, index: number) => unknown} predicate
|
|
612
|
+
* @returns {T[]}
|
|
613
|
+
*/
|
|
614
|
+
export function takeWhile<T>(array: readonly T[], predicate: (item: T, index: number) => unknown): T[];
|
|
615
|
+
/**
|
|
616
|
+
* Skips items from the start while they pass the test, and returns the rest.
|
|
617
|
+
*
|
|
618
|
+
* @example
|
|
619
|
+
* arr.dropWhile([1, 2, 5, 1], (n) => n < 3); // [5, 1]
|
|
620
|
+
*
|
|
621
|
+
* @template T
|
|
622
|
+
* @param {readonly T[]} array
|
|
623
|
+
* @param {(item: T, index: number) => unknown} predicate
|
|
624
|
+
* @returns {T[]}
|
|
625
|
+
*/
|
|
626
|
+
export function dropWhile<T>(array: readonly T[], predicate: (item: T, index: number) => unknown): T[];
|
|
627
|
+
/**
|
|
628
|
+
* Joins items the way a sentence would, in any language.
|
|
629
|
+
*
|
|
630
|
+
* @example
|
|
631
|
+
* arr.toSentence(["Ada", "Bob", "Cy"]); // "Ada, Bob, and Cy"
|
|
632
|
+
* arr.toSentence(["Ada", "Bob"], { locale: "fr" }); // "Ada et Bob"
|
|
633
|
+
* arr.toSentence(["red", "blue"], { type: "disjunction" }); // "red or blue"
|
|
634
|
+
*
|
|
635
|
+
* @param {Iterable<unknown>} items
|
|
636
|
+
* @param {ToSentenceOptions} [options]
|
|
637
|
+
* @returns {string}
|
|
638
|
+
*/
|
|
639
|
+
export function toSentence(items: Iterable<unknown>, options?: ToSentenceOptions): string;
|
|
562
640
|
//# sourceMappingURL=Arr.d.ts.map
|
package/types/src/Arr.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Arr.d.ts","sourceRoot":"","sources":["../../src/Arr.js"],"names":[],"mappings":";;;;qBAiBa,CAAC,IACD,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;;;;;oBAOhG,CAAC,IACD,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;iBAa3C,CAAC;;;;WAEA,CAAC,EAAE;;;;UACH,MAAM;aACN,MAAM;;;;WACN,MAAM;;;;WACN,MAAM;aACN,OAAO;aACP,OAAO
|
|
1
|
+
{"version":3,"file":"Arr.d.ts","sourceRoot":"","sources":["../../src/Arr.js"],"names":[],"mappings":"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"}
|
package/types/src/Async.d.ts
CHANGED
|
@@ -15,6 +15,13 @@ export type MapOptions = {
|
|
|
15
15
|
*/
|
|
16
16
|
signal?: AbortSignal | undefined;
|
|
17
17
|
};
|
|
18
|
+
/**
|
|
19
|
+
* A rate limiter from `rateLimit()`. Call it with a function to run it as
|
|
20
|
+
* soon as the rate allows.
|
|
21
|
+
*/
|
|
22
|
+
export type RateLimiter = (<T>(fn: () => T | PromiseLike<T>) => Promise<Awaited<T>>) & {
|
|
23
|
+
readonly pendingCount: number;
|
|
24
|
+
};
|
|
18
25
|
/**
|
|
19
26
|
* A limiter from `limit()`. Call it with a function to run it when there's room.
|
|
20
27
|
*/
|
|
@@ -172,10 +179,12 @@ export function sleep(duration: number | string, options?: {
|
|
|
172
179
|
}): Promise<void>;
|
|
173
180
|
/**
|
|
174
181
|
* Maps items through an async function, with at most `concurrency` calls
|
|
175
|
-
* at once. Results stay in order.
|
|
182
|
+
* at once. Results stay in order. Items are taken from the source as slots
|
|
183
|
+
* free up, so a stream is never read faster than it's processed.
|
|
176
184
|
*
|
|
177
185
|
* @example
|
|
178
186
|
* const users = await async.map(ids, (id) => api.getUser(id), { concurrency: 10 });
|
|
187
|
+
* await async.forEach(readline.createInterface({ input }), importLine, { concurrency: 20 });
|
|
179
188
|
*
|
|
180
189
|
* @template T
|
|
181
190
|
* @template R
|
|
@@ -224,6 +233,20 @@ export function filter<T>(items: Iterable<T> | AsyncIterable<T>, predicate: (ite
|
|
|
224
233
|
* @returns {Promise<Array<Awaited<T>>>}
|
|
225
234
|
*/
|
|
226
235
|
export function series<T>(tasks: Iterable<() => T | PromiseLike<T>>): Promise<Array<Awaited<T>>>;
|
|
236
|
+
/**
|
|
237
|
+
* Runs async functions at the same time, or a few at once with
|
|
238
|
+
* `concurrency`, and returns their results in order.
|
|
239
|
+
*
|
|
240
|
+
* @example
|
|
241
|
+
* const [users, posts] = await async.parallel([() => loadUsers(), () => loadPosts()]);
|
|
242
|
+
* await async.parallel(jobs, { concurrency: 4 });
|
|
243
|
+
*
|
|
244
|
+
* @template T
|
|
245
|
+
* @param {Iterable<() => T | PromiseLike<T>>} tasks
|
|
246
|
+
* @param {MapOptions} [options]
|
|
247
|
+
* @returns {Promise<Array<Awaited<T>>>}
|
|
248
|
+
*/
|
|
249
|
+
export function parallel<T>(tasks: Iterable<() => T | PromiseLike<T>>, options?: MapOptions): Promise<Array<Awaited<T>>>;
|
|
227
250
|
/**
|
|
228
251
|
* A limiter: wrap calls with it, and at most `concurrency` run at once
|
|
229
252
|
* while the rest wait their turn. Like `p-limit`.
|
|
@@ -236,6 +259,19 @@ export function series<T>(tasks: Iterable<() => T | PromiseLike<T>>): Promise<Ar
|
|
|
236
259
|
* @returns {Limiter}
|
|
237
260
|
*/
|
|
238
261
|
export function limit(concurrency: number): Limiter;
|
|
262
|
+
/**
|
|
263
|
+
* A rate limiter: at most `max` calls start within any `interval`. Made
|
|
264
|
+
* for APIs that allow, say, 10 requests per second.
|
|
265
|
+
*
|
|
266
|
+
* @example
|
|
267
|
+
* const throttled = async.rateLimit(10, "1s");
|
|
268
|
+
* const pages = await Promise.all(ids.map((id) => throttled(() => api.get(`items/${id}`))));
|
|
269
|
+
*
|
|
270
|
+
* @param {number} max How many calls may start per interval.
|
|
271
|
+
* @param {number | string} interval The window, in ms or like `"1s"`.
|
|
272
|
+
* @returns {RateLimiter}
|
|
273
|
+
*/
|
|
274
|
+
export function rateLimit(max: number, interval: number | string): RateLimiter;
|
|
239
275
|
/**
|
|
240
276
|
* A task queue with a concurrency limit, priorities, pause and per-task
|
|
241
277
|
* timeouts.
|
|
@@ -315,6 +351,21 @@ export function props<T extends Record<string, unknown>>(object: T): Promise<{ [
|
|
|
315
351
|
* @throws {AbortError}
|
|
316
352
|
*/
|
|
317
353
|
export function poll<T>(fn: () => T | PromiseLike<T>, options?: PollOptions): Promise<NonNullable<Awaited<T>>>;
|
|
354
|
+
/**
|
|
355
|
+
* Makes any promise give up when a signal fires. The work behind it keeps
|
|
356
|
+
* running unless it listens to the signal too.
|
|
357
|
+
*
|
|
358
|
+
* @example
|
|
359
|
+
* const controller = new AbortController();
|
|
360
|
+
* const rows = await async.abortable(slowQuery(), controller.signal);
|
|
361
|
+
*
|
|
362
|
+
* @template T
|
|
363
|
+
* @param {T | PromiseLike<T>} promise
|
|
364
|
+
* @param {AbortSignal} [signal]
|
|
365
|
+
* @returns {Promise<Awaited<T>>}
|
|
366
|
+
* @throws {AbortError} When the signal fires first.
|
|
367
|
+
*/
|
|
368
|
+
export function abortable<T>(promise: T | PromiseLike<T>, signal?: AbortSignal): Promise<Awaited<T>>;
|
|
318
369
|
import { retry } from "./Func.js";
|
|
319
370
|
import { timeout } from "./Func.js";
|
|
320
371
|
export { retry, timeout };
|
package/types/src/Async.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Async.d.ts","sourceRoot":"","sources":["../../src/Async.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Async.d.ts","sourceRoot":"","sources":["../../src/Async.js"],"names":[],"mappings":"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"}
|
package/types/src/Cache.d.ts
CHANGED
|
@@ -29,7 +29,8 @@ declare class Cache<K, V> {
|
|
|
29
29
|
peek(key: K): V | undefined;
|
|
30
30
|
/**
|
|
31
31
|
* Stores a value. When the cache is full, the least recently used entry
|
|
32
|
-
* goes.
|
|
32
|
+
* goes. A value being loaded for this key by `getOrSet()` is not stored
|
|
33
|
+
* when it arrives: the one you set stays.
|
|
33
34
|
*
|
|
34
35
|
* @example
|
|
35
36
|
* cache.set("token", token, { ttl: "15m" });
|
|
@@ -45,8 +46,13 @@ declare class Cache<K, V> {
|
|
|
45
46
|
* returns it. Simultaneous calls for the same key share one `loader` call,
|
|
46
47
|
* and a failed load caches nothing.
|
|
47
48
|
*
|
|
49
|
+
* With `staleWhileRevalidate`, an entry that just expired is returned at
|
|
50
|
+
* once while a new value loads in the background, so callers never wait
|
|
51
|
+
* on a refresh.
|
|
52
|
+
*
|
|
48
53
|
* @example
|
|
49
54
|
* const profile = await cache.getOrSet(`profile:${id}`, () => api.fetchProfile(id), { ttl: "10m" });
|
|
55
|
+
* const rates = await cache.getOrSet("rates", fetchRates, { ttl: "1m", staleWhileRevalidate: "10m" });
|
|
50
56
|
*
|
|
51
57
|
* @param {K} key
|
|
52
58
|
* @param {() => V | PromiseLike<V>} loader
|
|
@@ -62,7 +68,8 @@ declare class Cache<K, V> {
|
|
|
62
68
|
*/
|
|
63
69
|
has(key: K): boolean;
|
|
64
70
|
/**
|
|
65
|
-
* Removes an entry.
|
|
71
|
+
* Removes an entry. A value being loaded for this key by `getOrSet()` is
|
|
72
|
+
* not stored when it arrives.
|
|
66
73
|
*
|
|
67
74
|
* @param {K} key
|
|
68
75
|
* @returns {boolean} `true` if there was one.
|
|
@@ -96,17 +103,22 @@ declare class Cache<K, V> {
|
|
|
96
103
|
*
|
|
97
104
|
* @template {any[]} A
|
|
98
105
|
* @param {(...args: A) => V | PromiseLike<V>} fn
|
|
99
|
-
* @param {{ key?: (...args: A) => K
|
|
106
|
+
* @param {{ key?: (...args: A) => K } & CacheSetOptions} [options] `key` builds the cache key from the arguments. By default, primitives are compared by value and plain objects by content.
|
|
100
107
|
* @returns {(...args: A) => Promise<V>}
|
|
101
108
|
*/
|
|
102
109
|
wrap<A extends any[]>(fn: (...args: A) => V | PromiseLike<V>, options?: {
|
|
103
110
|
key?: (...args: A) => K;
|
|
104
|
-
|
|
105
|
-
}): (...args: A) => Promise<V>;
|
|
111
|
+
} & CacheSetOptions): (...args: A) => Promise<V>;
|
|
106
112
|
/** Number of entries, including expired ones not yet removed. */
|
|
107
113
|
get size(): number;
|
|
108
114
|
/** Hit and miss counts. */
|
|
109
115
|
get stats(): CacheStats;
|
|
116
|
+
/**
|
|
117
|
+
* Puts every counter of `stats` back to zero.
|
|
118
|
+
*
|
|
119
|
+
* @returns {this}
|
|
120
|
+
*/
|
|
121
|
+
resetStats(): this;
|
|
110
122
|
/**
|
|
111
123
|
* Fresh keys, least recently used first.
|
|
112
124
|
* @returns {K[]}
|
|
@@ -130,7 +142,7 @@ declare class Cache<K, V> {
|
|
|
130
142
|
#private;
|
|
131
143
|
}
|
|
132
144
|
declare namespace Cache {
|
|
133
|
-
export { CacheRemovalReason, CacheOptions, CacheSetOptions, CacheStats };
|
|
145
|
+
export { CacheRemovalReason, CacheOptions, CacheSetOptions, CacheStats, CacheEntry };
|
|
134
146
|
}
|
|
135
147
|
/**
|
|
136
148
|
* Why an entry left the cache.
|
|
@@ -148,6 +160,10 @@ type CacheOptions<K, V> = {
|
|
|
148
160
|
* How long entries live, in ms or like `"10m"`. `0` means forever, the default.
|
|
149
161
|
*/
|
|
150
162
|
ttl?: string | number | undefined;
|
|
163
|
+
/**
|
|
164
|
+
* After an entry expires, `getOrSet()` may still return it for this long while it loads a new value in the background.
|
|
165
|
+
*/
|
|
166
|
+
staleWhileRevalidate?: string | number | undefined;
|
|
151
167
|
/**
|
|
152
168
|
* Reading an entry restarts its time to live.
|
|
153
169
|
*/
|
|
@@ -165,13 +181,17 @@ type CacheSetOptions = {
|
|
|
165
181
|
* Time to live of this entry. `0` means forever.
|
|
166
182
|
*/
|
|
167
183
|
ttl?: string | number | undefined;
|
|
184
|
+
/**
|
|
185
|
+
* How long this entry can be served by `getOrSet()` after it expires, while a new value loads.
|
|
186
|
+
*/
|
|
187
|
+
staleWhileRevalidate?: string | number | undefined;
|
|
168
188
|
};
|
|
169
189
|
/**
|
|
170
190
|
* Cache stats.
|
|
171
191
|
*/
|
|
172
192
|
type CacheStats = {
|
|
173
193
|
/**
|
|
174
|
-
* Reads that found a
|
|
194
|
+
* Reads that found a usable entry.
|
|
175
195
|
*/
|
|
176
196
|
hits: number;
|
|
177
197
|
/**
|
|
@@ -192,4 +212,10 @@ type CacheStats = {
|
|
|
192
212
|
*/
|
|
193
213
|
hitRate: number;
|
|
194
214
|
};
|
|
215
|
+
type CacheEntry<V> = {
|
|
216
|
+
value: V;
|
|
217
|
+
expires: number;
|
|
218
|
+
ttl: number;
|
|
219
|
+
stale: number;
|
|
220
|
+
};
|
|
195
221
|
//# sourceMappingURL=Cache.d.ts.map
|
package/types/src/Cache.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cache.d.ts","sourceRoot":"","sources":["../../src/Cache.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"Cache.d.ts","sourceRoot":"","sources":["../../src/Cache.js"],"names":[],"mappings":";AA8DA;;;;;GAKG;AACH,oBAHa,CAAC,EACD,CAAC;IAsBZ;;;;;OAKG;IACH,sBAFW,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EAQ5B;IA8CD;;;;;OAKG;IACH,SAHW,CAAC,GACC,CAAC,GAAG,SAAS,CAgBzB;IAED;;;;;OAKG;IACH,UAHW,CAAC,GACC,CAAC,GAAG,SAAS,CAIzB;IAED;;;;;;;;;;;;OAYG;IACH,SALW,CAAC,SACD,CAAC,YACD,eAAe,GACb,IAAI,CAwBhB;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,cALW,CAAC,UACD,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,YACxB,eAAe,GACb,OAAO,CAAC,CAAC,CAAC,CAmBtB;IA8BD;;;;;OAKG;IACH,SAHW,CAAC,GACC,OAAO,CAInB;IAED;;;;;;OAMG;IACH,YAHW,CAAC,GACC,OAAO,CAQnB;IAED;;;;OAIG;IACH,SAFa,IAAI,CAKhB;IAED;;;;OAIG;IACH,SAFa,MAAM,CAYlB;IAED;;;;;OAKG;IACH,SAHW,CAAC,GACC,MAAM,GAAG,SAAS,CAM9B;IAED;;;;;;;;;;;OAWG;IACH,KALqB,CAAC,SAAR,GAAG,EAAG,MACT,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,YAClC;QAAE,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAAA;KAAE,GAAG,eAAe,GAC3C,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAQtC;IAED,iEAAiE;IACjE,mBAEC;IAED,2BAA2B;IAC3B,aAEoB,UAAU,CAC7B;IAED;;;;OAIG;IACH,cAFa,IAAI,CAKhB;IAgBD;;;OAGG;IACH,QAFa,CAAC,EAAE,CAIf;IAED;;;OAGG;IACH,UAFa,CAAC,EAAE,CAIf;IAED;;;OAGG;IACH,WAFa,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAIzB;IAED;;;OAGG;IACH,qBAFa,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAIpC;;CACF;;;;;;;0BA7ZY,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO;;;;kBAK/C,CAAC,EACD,CAAC;;;;;;;;;;;;;;;;;;;;sBAMM,CAAC,SAAS,CAAC,UAAU,kBAAkB,KAAK,IAAI;;;;;;;;;;;;;;;;;;;;;;UAatD,MAAM;;;;YACN,MAAM;UACN,MAAM;;;;eACN,MAAM;;;;iBACN,MAAM;;;;aACN,MAAM;;gBAIP,CAAC,IACD;IAAE,KAAK,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE"}
|
package/types/src/Checker.d.ts
CHANGED
|
@@ -26,7 +26,16 @@ export type IsUUIDOptions = {
|
|
|
26
26
|
/**
|
|
27
27
|
* Only accept this version. Otherwise versions 1 to 8 pass, plus the nil and max UUIDs.
|
|
28
28
|
*/
|
|
29
|
-
version?:
|
|
29
|
+
version?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | undefined;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Options for `isHostname()`.
|
|
33
|
+
*/
|
|
34
|
+
export type IsHostnameOptions = {
|
|
35
|
+
/**
|
|
36
|
+
* Require a domain like `example.com`, rejecting `localhost`.
|
|
37
|
+
*/
|
|
38
|
+
requireTld?: boolean | undefined;
|
|
30
39
|
};
|
|
31
40
|
/**
|
|
32
41
|
* Options for `isBase64()`.
|
|
@@ -56,6 +65,11 @@ export type IsBase64Options = {
|
|
|
56
65
|
* @typedef {object} IsUUIDOptions
|
|
57
66
|
* @property {1|2|3|4|5|6|7|8} [version] Only accept this version. Otherwise versions 1 to 8 pass, plus the nil and max UUIDs.
|
|
58
67
|
*/
|
|
68
|
+
/**
|
|
69
|
+
* Options for `isHostname()`.
|
|
70
|
+
* @typedef {object} IsHostnameOptions
|
|
71
|
+
* @property {boolean} [requireTld] Require a domain like `example.com`, rejecting `localhost`.
|
|
72
|
+
*/
|
|
59
73
|
/**
|
|
60
74
|
* Options for `isBase64()`.
|
|
61
75
|
* @typedef {object} IsBase64Options
|
|
@@ -396,7 +410,8 @@ export function isTypedArray(value: unknown): value is AnyTypedArray;
|
|
|
396
410
|
export function isError(value: unknown): value is Error;
|
|
397
411
|
/**
|
|
398
412
|
* Is it empty? `null`, `undefined`, `""`, `[]`, `{}` and empty maps and sets
|
|
399
|
-
* are. Numbers, booleans
|
|
413
|
+
* are. Numbers, booleans, functions, dates, regular expressions and errors
|
|
414
|
+
* never are.
|
|
400
415
|
*
|
|
401
416
|
* @example
|
|
402
417
|
* nc.isEmpty({}); // true
|
|
@@ -640,6 +655,144 @@ export function isCreditCard(value: unknown): value is string;
|
|
|
640
655
|
* @returns {value is string}
|
|
641
656
|
*/
|
|
642
657
|
export function isJWT(value: unknown): value is string;
|
|
658
|
+
/**
|
|
659
|
+
* Is it a host name, like `example.com`, `api.internal` or `localhost`?
|
|
660
|
+
* International names are accepted. IP addresses aren't: see `isIP`.
|
|
661
|
+
*
|
|
662
|
+
* @example
|
|
663
|
+
* nc.isHostname("api.example.com"); // true
|
|
664
|
+
* nc.isHostname("localhost"); // true
|
|
665
|
+
* nc.isHostname("localhost", { requireTld: true }); // false
|
|
666
|
+
* nc.isHostname("-bad-.com"); // false
|
|
667
|
+
*
|
|
668
|
+
* @param {unknown} value
|
|
669
|
+
* @param {IsHostnameOptions} [options]
|
|
670
|
+
* @returns {value is string}
|
|
671
|
+
*/
|
|
672
|
+
export function isHostname(value: unknown, options?: IsHostnameOptions): value is string;
|
|
673
|
+
/**
|
|
674
|
+
* Is it a MAC address? Accepts `aa:bb:cc:dd:ee:ff`, `aa-bb-cc-dd-ee-ff` and
|
|
675
|
+
* `aabb.ccdd.eeff`.
|
|
676
|
+
*
|
|
677
|
+
* @example
|
|
678
|
+
* nc.isMACAddress("00:1B:44:11:3A:B7"); // true
|
|
679
|
+
* nc.isMACAddress("00:1B:44:11:3A"); // false
|
|
680
|
+
*
|
|
681
|
+
* @param {unknown} value
|
|
682
|
+
* @returns {value is string}
|
|
683
|
+
*/
|
|
684
|
+
export function isMACAddress(value: unknown): value is string;
|
|
685
|
+
/**
|
|
686
|
+
* Is it a valid IBAN? Checks the format and the checksum, spaces allowed.
|
|
687
|
+
*
|
|
688
|
+
* @example
|
|
689
|
+
* nc.isIBAN("FR76 3000 6000 0112 3456 7890 189"); // true
|
|
690
|
+
* nc.isIBAN("FR76 3000 6000 0112 3456 7890 180"); // false, wrong checksum
|
|
691
|
+
*
|
|
692
|
+
* @param {unknown} value
|
|
693
|
+
* @returns {value is string}
|
|
694
|
+
*/
|
|
695
|
+
export function isIBAN(value: unknown): value is string;
|
|
696
|
+
/**
|
|
697
|
+
* Is it a phone number in the international E.164 format: a `+`, then 7 to
|
|
698
|
+
* 15 digits, no spaces? That's what SMS and telephony APIs expect.
|
|
699
|
+
*
|
|
700
|
+
* @example
|
|
701
|
+
* nc.isE164("+33612345678"); // true
|
|
702
|
+
* nc.isE164("06 12 34 56 78"); // false
|
|
703
|
+
*
|
|
704
|
+
* @param {unknown} value
|
|
705
|
+
* @returns {value is string}
|
|
706
|
+
*/
|
|
707
|
+
export function isE164(value: unknown): value is string;
|
|
708
|
+
/**
|
|
709
|
+
* Is it a MongoDB ObjectId, 24 hexadecimal characters?
|
|
710
|
+
*
|
|
711
|
+
* @example
|
|
712
|
+
* nc.isObjectId("507f1f77bcf86cd799439011"); // true
|
|
713
|
+
*
|
|
714
|
+
* @param {unknown} value
|
|
715
|
+
* @returns {value is string}
|
|
716
|
+
*/
|
|
717
|
+
export function isObjectId(value: unknown): value is string;
|
|
718
|
+
/**
|
|
719
|
+
* Is it a ULID, like the ones `nc.id.ulid()` makes?
|
|
720
|
+
*
|
|
721
|
+
* @example
|
|
722
|
+
* nc.isULID(nc.id.ulid()); // true
|
|
723
|
+
*
|
|
724
|
+
* @param {unknown} value
|
|
725
|
+
* @returns {value is string}
|
|
726
|
+
*/
|
|
727
|
+
export function isULID(value: unknown): value is string;
|
|
728
|
+
/**
|
|
729
|
+
* Is it a `data:` URL, like an inline image?
|
|
730
|
+
*
|
|
731
|
+
* @example
|
|
732
|
+
* nc.isDataURL("data:image/png;base64,iVBORw0KGgo="); // true
|
|
733
|
+
* nc.isDataURL("data:,Hello"); // true
|
|
734
|
+
*
|
|
735
|
+
* @param {unknown} value
|
|
736
|
+
* @returns {value is string}
|
|
737
|
+
*/
|
|
738
|
+
export function isDataURL(value: unknown): value is string;
|
|
739
|
+
/**
|
|
740
|
+
* Is it a media type, like `application/json` or
|
|
741
|
+
* `text/html; charset=utf-8`?
|
|
742
|
+
*
|
|
743
|
+
* @example
|
|
744
|
+
* nc.isMimeType("image/svg+xml"); // true
|
|
745
|
+
* nc.isMimeType("json"); // false
|
|
746
|
+
*
|
|
747
|
+
* @param {unknown} value
|
|
748
|
+
* @returns {value is string}
|
|
749
|
+
*/
|
|
750
|
+
export function isMimeType(value: unknown): value is string;
|
|
751
|
+
/**
|
|
752
|
+
* Is it a time zone Node.js knows, like `"Europe/Paris"` or `"UTC"`?
|
|
753
|
+
*
|
|
754
|
+
* @example
|
|
755
|
+
* nc.isTimeZone("America/New_York"); // true
|
|
756
|
+
* nc.isTimeZone("Mars/Olympus"); // false
|
|
757
|
+
*
|
|
758
|
+
* @param {unknown} value
|
|
759
|
+
* @returns {value is string}
|
|
760
|
+
*/
|
|
761
|
+
export function isTimeZone(value: unknown): value is string;
|
|
762
|
+
/**
|
|
763
|
+
* Is it a well-formed locale, like `"fr"`, `"en-GB"` or `"zh-Hant-TW"`?
|
|
764
|
+
*
|
|
765
|
+
* @example
|
|
766
|
+
* nc.isLocale("pt-BR"); // true
|
|
767
|
+
* nc.isLocale("en_US"); // false, use a dash
|
|
768
|
+
*
|
|
769
|
+
* @param {unknown} value
|
|
770
|
+
* @returns {value is string}
|
|
771
|
+
*/
|
|
772
|
+
export function isLocale(value: unknown): value is string;
|
|
773
|
+
/**
|
|
774
|
+
* Is it a cron expression `nc.time.cron()` understands?
|
|
775
|
+
*
|
|
776
|
+
* @example
|
|
777
|
+
* nc.isCron("0 9 * * 1-5"); // true
|
|
778
|
+
* nc.isCron("@daily"); // true
|
|
779
|
+
* nc.isCron("61 * * * *"); // false
|
|
780
|
+
*
|
|
781
|
+
* @param {unknown} value
|
|
782
|
+
* @returns {value is string}
|
|
783
|
+
*/
|
|
784
|
+
export function isCron(value: unknown): value is string;
|
|
785
|
+
/**
|
|
786
|
+
* Is it made only of ASCII characters?
|
|
787
|
+
*
|
|
788
|
+
* @example
|
|
789
|
+
* nc.isASCII("hello"); // true
|
|
790
|
+
* nc.isASCII("héllo"); // false
|
|
791
|
+
*
|
|
792
|
+
* @param {unknown} value
|
|
793
|
+
* @returns {value is string}
|
|
794
|
+
*/
|
|
795
|
+
export function isASCII(value: unknown): value is string;
|
|
643
796
|
/**
|
|
644
797
|
* Throws an `AssertionError` if `condition` is falsy. Afterwards, TypeScript
|
|
645
798
|
* knows the condition holds.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checker.d.ts","sourceRoot":"","sources":["../../src/Checker.js"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Checker.d.ts","sourceRoot":"","sources":["../../src/Checker.js"],"names":[],"mappings":"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"}
|