@jeniex/utils 1.3.0 → 1.4.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/browser/index.cjs +121 -5
- package/browser/index.d.ts +107 -2
- package/browser/index.js +119 -5
- package/node/index.cjs +121 -5
- package/node/index.d.ts +107 -2
- package/node/index.js +119 -5
- package/node/inquirer/index.js +20 -0
- package/package.json +1 -1
package/browser/index.cjs
CHANGED
|
@@ -48,16 +48,130 @@ function remove(array, object) {
|
|
|
48
48
|
array.splice(index, 1);
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
+
/**
|
|
52
|
+
* Asserts that an object is neither `null` nor `undefined`.
|
|
53
|
+
*
|
|
54
|
+
* If the object is `null` or `undefined`, a `TypeError` is thrown.
|
|
55
|
+
* Otherwise, TypeScript narrows the object to `T`.
|
|
56
|
+
*
|
|
57
|
+
* @template T The type of the object.
|
|
58
|
+
*
|
|
59
|
+
* @param object The object to validate.
|
|
60
|
+
*
|
|
61
|
+
* @throws {TypeError} If the object is `null` or `undefined`.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* const object: string | undefined = Math.random() < 0.5 ? undefined : 'Hello';
|
|
65
|
+
*
|
|
66
|
+
* assert(object);
|
|
67
|
+
*
|
|
68
|
+
* // `object` is now typed as `string`.
|
|
69
|
+
* console.log(object.length);
|
|
70
|
+
*/
|
|
71
|
+
function assert(object) {
|
|
72
|
+
if (object === null || object === undefined) {
|
|
73
|
+
throw new TypeError('object is either null or undefined');
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Asserts that an object satisfies the given type guard.
|
|
78
|
+
*
|
|
79
|
+
* If the type guard returns `false`, a `TypeError` is thrown.
|
|
80
|
+
* Otherwise, TypeScript narrows the object to the type accepted by
|
|
81
|
+
* the type guard.
|
|
82
|
+
*
|
|
83
|
+
* @template T The type checked by the type guard.
|
|
84
|
+
*
|
|
85
|
+
* @param object The object to validate.
|
|
86
|
+
* @param guard A type guard used to validate the object.
|
|
87
|
+
*
|
|
88
|
+
* @throws {TypeError} If the object does not satisfy the type guard.
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* const object: number | string = Math.random() < 0.5 ? 1 : 'Hello';
|
|
92
|
+
*
|
|
93
|
+
* assertType(object, isNumber);
|
|
94
|
+
*
|
|
95
|
+
* // `object` is now typed as `number`.
|
|
96
|
+
* console.log(object.toFixed(2));
|
|
97
|
+
*
|
|
98
|
+
* @example
|
|
99
|
+
* const object: unknown = 'hello';
|
|
100
|
+
*
|
|
101
|
+
* assertType(object, isString);
|
|
102
|
+
*
|
|
103
|
+
* // `object` is now typed as `string`.
|
|
104
|
+
* console.log(object.toUpperCase());
|
|
105
|
+
*/
|
|
106
|
+
function assertType(object, guard) {
|
|
107
|
+
if (!guard(object)) {
|
|
108
|
+
throw new TypeError('object has an invalid type');
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Asserts that an object is neither `null` nor `undefined` and returns it.
|
|
113
|
+
*
|
|
114
|
+
* If the object is `null` or `undefined`, a `TypeError` is thrown.
|
|
115
|
+
* Otherwise, the object is returned with its type narrowed to `T`.
|
|
116
|
+
*
|
|
117
|
+
* @template T The type of the object.
|
|
118
|
+
*
|
|
119
|
+
* @param object The object to validate.
|
|
120
|
+
*
|
|
121
|
+
* @returns The validated object, narrowed to `T`.
|
|
122
|
+
*
|
|
123
|
+
* @throws {TypeError} If the object is `null` or `undefined`.
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* const object: string | undefined = Math.random() < 0.5 ? undefined : 'Hello';
|
|
127
|
+
*
|
|
128
|
+
* const string = asserted(object);
|
|
129
|
+
*
|
|
130
|
+
* // `object` is now typed as `string`.
|
|
131
|
+
* console.log(string.length);
|
|
132
|
+
*/
|
|
51
133
|
function asserted(object) {
|
|
52
134
|
if (object === null || object === undefined) {
|
|
53
|
-
throw new
|
|
135
|
+
throw new TypeError('object is either null or undefined');
|
|
54
136
|
}
|
|
55
137
|
return object;
|
|
56
138
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
139
|
+
/**
|
|
140
|
+
* Asserts that an object satisfies the given type guard and returns it
|
|
141
|
+
* with the narrowed type.
|
|
142
|
+
*
|
|
143
|
+
* If the type guard returns `false`, a `TypeError` is thrown.
|
|
144
|
+
*
|
|
145
|
+
* @template T The type checked by the type guard.
|
|
146
|
+
*
|
|
147
|
+
* @param object The object to validate.
|
|
148
|
+
* @param guard A type guard used to validate the object.
|
|
149
|
+
*
|
|
150
|
+
* @returns The validated object, narrowed to `T`.
|
|
151
|
+
*
|
|
152
|
+
* @throws {TypeError} If the object does not satisfy the type guard.
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* const object: number | string = Math.random() < 0.5 ? 1 : 'Hello';
|
|
156
|
+
*
|
|
157
|
+
* const number = assertedType(object, isNumber);
|
|
158
|
+
*
|
|
159
|
+
* // `number` is typed as `number`.
|
|
160
|
+
* console.log(number.toFixed(2));
|
|
161
|
+
*
|
|
162
|
+
* @example
|
|
163
|
+
* const object: unknown = 'hello';
|
|
164
|
+
*
|
|
165
|
+
* const text = assertedType(object, isString);
|
|
166
|
+
*
|
|
167
|
+
* // `text` is typed as `string`.
|
|
168
|
+
* console.log(text.toUpperCase());
|
|
169
|
+
*/
|
|
170
|
+
function assertedType(object, guard) {
|
|
171
|
+
if (!guard(object)) {
|
|
172
|
+
throw new TypeError('object has an invalid type');
|
|
60
173
|
}
|
|
174
|
+
return object;
|
|
61
175
|
}
|
|
62
176
|
function isTruthy(object) {
|
|
63
177
|
return Boolean(object) === true;
|
|
@@ -585,7 +699,10 @@ exports.$ = $;
|
|
|
585
699
|
exports.$$ = $$;
|
|
586
700
|
exports.addStyle = addStyle;
|
|
587
701
|
exports.alert = alert;
|
|
702
|
+
exports.assert = assert;
|
|
703
|
+
exports.assertType = assertType;
|
|
588
704
|
exports.asserted = asserted;
|
|
705
|
+
exports.assertedType = assertedType;
|
|
589
706
|
exports.capitalize = capitalize;
|
|
590
707
|
exports.checkVPN = checkVPN;
|
|
591
708
|
exports.checkVPNRandomly = checkVPNRandomly;
|
|
@@ -621,6 +738,5 @@ exports.saveFile = saveFile;
|
|
|
621
738
|
exports.scriptName = scriptName;
|
|
622
739
|
exports.setSearchParam = setSearchParam;
|
|
623
740
|
exports.sleep = sleep;
|
|
624
|
-
exports.stringOrThrow = stringOrThrow;
|
|
625
741
|
exports.tabURL = tabURL;
|
|
626
742
|
exports.toString = toString;
|
package/browser/index.d.ts
CHANGED
|
@@ -16,8 +16,113 @@ declare function remove<T>(array: T[], object: T): void;
|
|
|
16
16
|
declare function noop(): void;
|
|
17
17
|
declare function toString(object: unknown): string;
|
|
18
18
|
|
|
19
|
+
/**
|
|
20
|
+
* Asserts that an object is neither `null` nor `undefined`.
|
|
21
|
+
*
|
|
22
|
+
* If the object is `null` or `undefined`, a `TypeError` is thrown.
|
|
23
|
+
* Otherwise, TypeScript narrows the object to `T`.
|
|
24
|
+
*
|
|
25
|
+
* @template T The type of the object.
|
|
26
|
+
*
|
|
27
|
+
* @param object The object to validate.
|
|
28
|
+
*
|
|
29
|
+
* @throws {TypeError} If the object is `null` or `undefined`.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* const object: string | undefined = Math.random() < 0.5 ? undefined : 'Hello';
|
|
33
|
+
*
|
|
34
|
+
* assert(object);
|
|
35
|
+
*
|
|
36
|
+
* // `object` is now typed as `string`.
|
|
37
|
+
* console.log(object.length);
|
|
38
|
+
*/
|
|
39
|
+
declare function assert<T>(object: T | null | undefined): asserts object is T;
|
|
40
|
+
/**
|
|
41
|
+
* Asserts that an object satisfies the given type guard.
|
|
42
|
+
*
|
|
43
|
+
* If the type guard returns `false`, a `TypeError` is thrown.
|
|
44
|
+
* Otherwise, TypeScript narrows the object to the type accepted by
|
|
45
|
+
* the type guard.
|
|
46
|
+
*
|
|
47
|
+
* @template T The type checked by the type guard.
|
|
48
|
+
*
|
|
49
|
+
* @param object The object to validate.
|
|
50
|
+
* @param guard A type guard used to validate the object.
|
|
51
|
+
*
|
|
52
|
+
* @throws {TypeError} If the object does not satisfy the type guard.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* const object: number | string = Math.random() < 0.5 ? 1 : 'Hello';
|
|
56
|
+
*
|
|
57
|
+
* assertType(object, isNumber);
|
|
58
|
+
*
|
|
59
|
+
* // `object` is now typed as `number`.
|
|
60
|
+
* console.log(object.toFixed(2));
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* const object: unknown = 'hello';
|
|
64
|
+
*
|
|
65
|
+
* assertType(object, isString);
|
|
66
|
+
*
|
|
67
|
+
* // `object` is now typed as `string`.
|
|
68
|
+
* console.log(object.toUpperCase());
|
|
69
|
+
*/
|
|
70
|
+
declare function assertType<T>(object: unknown, guard: (object: unknown) => object is T): asserts object is T;
|
|
71
|
+
/**
|
|
72
|
+
* Asserts that an object is neither `null` nor `undefined` and returns it.
|
|
73
|
+
*
|
|
74
|
+
* If the object is `null` or `undefined`, a `TypeError` is thrown.
|
|
75
|
+
* Otherwise, the object is returned with its type narrowed to `T`.
|
|
76
|
+
*
|
|
77
|
+
* @template T The type of the object.
|
|
78
|
+
*
|
|
79
|
+
* @param object The object to validate.
|
|
80
|
+
*
|
|
81
|
+
* @returns The validated object, narrowed to `T`.
|
|
82
|
+
*
|
|
83
|
+
* @throws {TypeError} If the object is `null` or `undefined`.
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* const object: string | undefined = Math.random() < 0.5 ? undefined : 'Hello';
|
|
87
|
+
*
|
|
88
|
+
* const string = asserted(object);
|
|
89
|
+
*
|
|
90
|
+
* // `object` is now typed as `string`.
|
|
91
|
+
* console.log(string.length);
|
|
92
|
+
*/
|
|
19
93
|
declare function asserted<T>(object: T | null | undefined): T;
|
|
20
|
-
|
|
94
|
+
/**
|
|
95
|
+
* Asserts that an object satisfies the given type guard and returns it
|
|
96
|
+
* with the narrowed type.
|
|
97
|
+
*
|
|
98
|
+
* If the type guard returns `false`, a `TypeError` is thrown.
|
|
99
|
+
*
|
|
100
|
+
* @template T The type checked by the type guard.
|
|
101
|
+
*
|
|
102
|
+
* @param object The object to validate.
|
|
103
|
+
* @param guard A type guard used to validate the object.
|
|
104
|
+
*
|
|
105
|
+
* @returns The validated object, narrowed to `T`.
|
|
106
|
+
*
|
|
107
|
+
* @throws {TypeError} If the object does not satisfy the type guard.
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* const object: number | string = Math.random() < 0.5 ? 1 : 'Hello';
|
|
111
|
+
*
|
|
112
|
+
* const number = assertedType(object, isNumber);
|
|
113
|
+
*
|
|
114
|
+
* // `number` is typed as `number`.
|
|
115
|
+
* console.log(number.toFixed(2));
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* const object: unknown = 'hello';
|
|
119
|
+
*
|
|
120
|
+
* const text = assertedType(object, isString);
|
|
121
|
+
*
|
|
122
|
+
* // `text` is typed as `string`.
|
|
123
|
+
* console.log(text.toUpperCase());
|
|
124
|
+
*/
|
|
125
|
+
declare function assertedType<T>(object: unknown, guard: (object: unknown) => object is T): T;
|
|
21
126
|
declare function isTruthy<T>(object: T): object is Exclude<T, '' | 0 | false | null | undefined>;
|
|
22
127
|
declare function isFalsy(object: unknown): object is '' | 0 | false | null | undefined;
|
|
23
128
|
declare function isNullish(object: unknown): object is null | undefined;
|
|
@@ -203,4 +308,4 @@ declare function rx(url: string, options?: RxOptions): RqRequest;
|
|
|
203
308
|
|
|
204
309
|
declare function createRequest<TOptions>(transport: Transport<TOptions>, url: string, options?: TOptions): RqRequest;
|
|
205
310
|
|
|
206
|
-
export { $, $$, Flag, Fn, Nullable, Prettify, addStyle, alert, asserted, capitalize, checkVPN, checkVPNRandomly, confirm, customizeConsole, fish, fishResponse, fishX, fishXResponse, getOptions, getSearchParam, imageLoad, isBoolean, isFalsy, isFunction, isNotNullish, isNullish, isNumber, isObject, isString, isTruthy, join, noop, padZeros, pageLoad, prompt, remove, removeSearchParams, rq, createRequest as rqc, rx, saveFile, scriptName, setSearchParam, sleep,
|
|
311
|
+
export { $, $$, Flag, Fn, Nullable, Prettify, addStyle, alert, assert, assertType, asserted, assertedType, capitalize, checkVPN, checkVPNRandomly, confirm, customizeConsole, fish, fishResponse, fishX, fishXResponse, getOptions, getSearchParam, imageLoad, isBoolean, isFalsy, isFunction, isNotNullish, isNullish, isNumber, isObject, isString, isTruthy, join, noop, padZeros, pageLoad, prompt, remove, removeSearchParams, rq, createRequest as rqc, rx, saveFile, scriptName, setSearchParam, sleep, tabURL, toString };
|
package/browser/index.js
CHANGED
|
@@ -46,16 +46,130 @@ function remove(array, object) {
|
|
|
46
46
|
array.splice(index, 1);
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
+
/**
|
|
50
|
+
* Asserts that an object is neither `null` nor `undefined`.
|
|
51
|
+
*
|
|
52
|
+
* If the object is `null` or `undefined`, a `TypeError` is thrown.
|
|
53
|
+
* Otherwise, TypeScript narrows the object to `T`.
|
|
54
|
+
*
|
|
55
|
+
* @template T The type of the object.
|
|
56
|
+
*
|
|
57
|
+
* @param object The object to validate.
|
|
58
|
+
*
|
|
59
|
+
* @throws {TypeError} If the object is `null` or `undefined`.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* const object: string | undefined = Math.random() < 0.5 ? undefined : 'Hello';
|
|
63
|
+
*
|
|
64
|
+
* assert(object);
|
|
65
|
+
*
|
|
66
|
+
* // `object` is now typed as `string`.
|
|
67
|
+
* console.log(object.length);
|
|
68
|
+
*/
|
|
69
|
+
function assert(object) {
|
|
70
|
+
if (object === null || object === undefined) {
|
|
71
|
+
throw new TypeError('object is either null or undefined');
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Asserts that an object satisfies the given type guard.
|
|
76
|
+
*
|
|
77
|
+
* If the type guard returns `false`, a `TypeError` is thrown.
|
|
78
|
+
* Otherwise, TypeScript narrows the object to the type accepted by
|
|
79
|
+
* the type guard.
|
|
80
|
+
*
|
|
81
|
+
* @template T The type checked by the type guard.
|
|
82
|
+
*
|
|
83
|
+
* @param object The object to validate.
|
|
84
|
+
* @param guard A type guard used to validate the object.
|
|
85
|
+
*
|
|
86
|
+
* @throws {TypeError} If the object does not satisfy the type guard.
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* const object: number | string = Math.random() < 0.5 ? 1 : 'Hello';
|
|
90
|
+
*
|
|
91
|
+
* assertType(object, isNumber);
|
|
92
|
+
*
|
|
93
|
+
* // `object` is now typed as `number`.
|
|
94
|
+
* console.log(object.toFixed(2));
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* const object: unknown = 'hello';
|
|
98
|
+
*
|
|
99
|
+
* assertType(object, isString);
|
|
100
|
+
*
|
|
101
|
+
* // `object` is now typed as `string`.
|
|
102
|
+
* console.log(object.toUpperCase());
|
|
103
|
+
*/
|
|
104
|
+
function assertType(object, guard) {
|
|
105
|
+
if (!guard(object)) {
|
|
106
|
+
throw new TypeError('object has an invalid type');
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Asserts that an object is neither `null` nor `undefined` and returns it.
|
|
111
|
+
*
|
|
112
|
+
* If the object is `null` or `undefined`, a `TypeError` is thrown.
|
|
113
|
+
* Otherwise, the object is returned with its type narrowed to `T`.
|
|
114
|
+
*
|
|
115
|
+
* @template T The type of the object.
|
|
116
|
+
*
|
|
117
|
+
* @param object The object to validate.
|
|
118
|
+
*
|
|
119
|
+
* @returns The validated object, narrowed to `T`.
|
|
120
|
+
*
|
|
121
|
+
* @throws {TypeError} If the object is `null` or `undefined`.
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* const object: string | undefined = Math.random() < 0.5 ? undefined : 'Hello';
|
|
125
|
+
*
|
|
126
|
+
* const string = asserted(object);
|
|
127
|
+
*
|
|
128
|
+
* // `object` is now typed as `string`.
|
|
129
|
+
* console.log(string.length);
|
|
130
|
+
*/
|
|
49
131
|
function asserted(object) {
|
|
50
132
|
if (object === null || object === undefined) {
|
|
51
|
-
throw new
|
|
133
|
+
throw new TypeError('object is either null or undefined');
|
|
52
134
|
}
|
|
53
135
|
return object;
|
|
54
136
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
137
|
+
/**
|
|
138
|
+
* Asserts that an object satisfies the given type guard and returns it
|
|
139
|
+
* with the narrowed type.
|
|
140
|
+
*
|
|
141
|
+
* If the type guard returns `false`, a `TypeError` is thrown.
|
|
142
|
+
*
|
|
143
|
+
* @template T The type checked by the type guard.
|
|
144
|
+
*
|
|
145
|
+
* @param object The object to validate.
|
|
146
|
+
* @param guard A type guard used to validate the object.
|
|
147
|
+
*
|
|
148
|
+
* @returns The validated object, narrowed to `T`.
|
|
149
|
+
*
|
|
150
|
+
* @throws {TypeError} If the object does not satisfy the type guard.
|
|
151
|
+
*
|
|
152
|
+
* @example
|
|
153
|
+
* const object: number | string = Math.random() < 0.5 ? 1 : 'Hello';
|
|
154
|
+
*
|
|
155
|
+
* const number = assertedType(object, isNumber);
|
|
156
|
+
*
|
|
157
|
+
* // `number` is typed as `number`.
|
|
158
|
+
* console.log(number.toFixed(2));
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* const object: unknown = 'hello';
|
|
162
|
+
*
|
|
163
|
+
* const text = assertedType(object, isString);
|
|
164
|
+
*
|
|
165
|
+
* // `text` is typed as `string`.
|
|
166
|
+
* console.log(text.toUpperCase());
|
|
167
|
+
*/
|
|
168
|
+
function assertedType(object, guard) {
|
|
169
|
+
if (!guard(object)) {
|
|
170
|
+
throw new TypeError('object has an invalid type');
|
|
58
171
|
}
|
|
172
|
+
return object;
|
|
59
173
|
}
|
|
60
174
|
function isTruthy(object) {
|
|
61
175
|
return Boolean(object) === true;
|
|
@@ -579,4 +693,4 @@ function rx(url, options) {
|
|
|
579
693
|
return createRequest(gmTransport, url, options);
|
|
580
694
|
}
|
|
581
695
|
|
|
582
|
-
export { $, $$, addStyle, alert, asserted, capitalize, checkVPN, checkVPNRandomly, confirm, customizeConsole, fish, fishResponse, fishX, fishXResponse, getOptions, getSearchParam, imageLoad, isBoolean, isFalsy, isFunction, isNotNullish, isNullish, isNumber, isObject, isString, isTruthy, join, noop, padZeros, pageLoad, prompt, remove, removeSearchParams, rq, createRequest as rqc, rx, saveFile, scriptName, setSearchParam, sleep,
|
|
696
|
+
export { $, $$, addStyle, alert, assert, assertType, asserted, assertedType, capitalize, checkVPN, checkVPNRandomly, confirm, customizeConsole, fish, fishResponse, fishX, fishXResponse, getOptions, getSearchParam, imageLoad, isBoolean, isFalsy, isFunction, isNotNullish, isNullish, isNumber, isObject, isString, isTruthy, join, noop, padZeros, pageLoad, prompt, remove, removeSearchParams, rq, createRequest as rqc, rx, saveFile, scriptName, setSearchParam, sleep, tabURL, toString };
|
package/node/index.cjs
CHANGED
|
@@ -52,16 +52,130 @@ function remove(array, object) {
|
|
|
52
52
|
array.splice(index, 1);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
+
/**
|
|
56
|
+
* Asserts that an object is neither `null` nor `undefined`.
|
|
57
|
+
*
|
|
58
|
+
* If the object is `null` or `undefined`, a `TypeError` is thrown.
|
|
59
|
+
* Otherwise, TypeScript narrows the object to `T`.
|
|
60
|
+
*
|
|
61
|
+
* @template T The type of the object.
|
|
62
|
+
*
|
|
63
|
+
* @param object The object to validate.
|
|
64
|
+
*
|
|
65
|
+
* @throws {TypeError} If the object is `null` or `undefined`.
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* const object: string | undefined = Math.random() < 0.5 ? undefined : 'Hello';
|
|
69
|
+
*
|
|
70
|
+
* assert(object);
|
|
71
|
+
*
|
|
72
|
+
* // `object` is now typed as `string`.
|
|
73
|
+
* console.log(object.length);
|
|
74
|
+
*/
|
|
75
|
+
function assert(object) {
|
|
76
|
+
if (object === null || object === undefined) {
|
|
77
|
+
throw new TypeError('object is either null or undefined');
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Asserts that an object satisfies the given type guard.
|
|
82
|
+
*
|
|
83
|
+
* If the type guard returns `false`, a `TypeError` is thrown.
|
|
84
|
+
* Otherwise, TypeScript narrows the object to the type accepted by
|
|
85
|
+
* the type guard.
|
|
86
|
+
*
|
|
87
|
+
* @template T The type checked by the type guard.
|
|
88
|
+
*
|
|
89
|
+
* @param object The object to validate.
|
|
90
|
+
* @param guard A type guard used to validate the object.
|
|
91
|
+
*
|
|
92
|
+
* @throws {TypeError} If the object does not satisfy the type guard.
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* const object: number | string = Math.random() < 0.5 ? 1 : 'Hello';
|
|
96
|
+
*
|
|
97
|
+
* assertType(object, isNumber);
|
|
98
|
+
*
|
|
99
|
+
* // `object` is now typed as `number`.
|
|
100
|
+
* console.log(object.toFixed(2));
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* const object: unknown = 'hello';
|
|
104
|
+
*
|
|
105
|
+
* assertType(object, isString);
|
|
106
|
+
*
|
|
107
|
+
* // `object` is now typed as `string`.
|
|
108
|
+
* console.log(object.toUpperCase());
|
|
109
|
+
*/
|
|
110
|
+
function assertType(object, guard) {
|
|
111
|
+
if (!guard(object)) {
|
|
112
|
+
throw new TypeError('object has an invalid type');
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Asserts that an object is neither `null` nor `undefined` and returns it.
|
|
117
|
+
*
|
|
118
|
+
* If the object is `null` or `undefined`, a `TypeError` is thrown.
|
|
119
|
+
* Otherwise, the object is returned with its type narrowed to `T`.
|
|
120
|
+
*
|
|
121
|
+
* @template T The type of the object.
|
|
122
|
+
*
|
|
123
|
+
* @param object The object to validate.
|
|
124
|
+
*
|
|
125
|
+
* @returns The validated object, narrowed to `T`.
|
|
126
|
+
*
|
|
127
|
+
* @throws {TypeError} If the object is `null` or `undefined`.
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* const object: string | undefined = Math.random() < 0.5 ? undefined : 'Hello';
|
|
131
|
+
*
|
|
132
|
+
* const string = asserted(object);
|
|
133
|
+
*
|
|
134
|
+
* // `object` is now typed as `string`.
|
|
135
|
+
* console.log(string.length);
|
|
136
|
+
*/
|
|
55
137
|
function asserted(object) {
|
|
56
138
|
if (object === null || object === undefined) {
|
|
57
|
-
throw new
|
|
139
|
+
throw new TypeError('object is either null or undefined');
|
|
58
140
|
}
|
|
59
141
|
return object;
|
|
60
142
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
143
|
+
/**
|
|
144
|
+
* Asserts that an object satisfies the given type guard and returns it
|
|
145
|
+
* with the narrowed type.
|
|
146
|
+
*
|
|
147
|
+
* If the type guard returns `false`, a `TypeError` is thrown.
|
|
148
|
+
*
|
|
149
|
+
* @template T The type checked by the type guard.
|
|
150
|
+
*
|
|
151
|
+
* @param object The object to validate.
|
|
152
|
+
* @param guard A type guard used to validate the object.
|
|
153
|
+
*
|
|
154
|
+
* @returns The validated object, narrowed to `T`.
|
|
155
|
+
*
|
|
156
|
+
* @throws {TypeError} If the object does not satisfy the type guard.
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* const object: number | string = Math.random() < 0.5 ? 1 : 'Hello';
|
|
160
|
+
*
|
|
161
|
+
* const number = assertedType(object, isNumber);
|
|
162
|
+
*
|
|
163
|
+
* // `number` is typed as `number`.
|
|
164
|
+
* console.log(number.toFixed(2));
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* const object: unknown = 'hello';
|
|
168
|
+
*
|
|
169
|
+
* const text = assertedType(object, isString);
|
|
170
|
+
*
|
|
171
|
+
* // `text` is typed as `string`.
|
|
172
|
+
* console.log(text.toUpperCase());
|
|
173
|
+
*/
|
|
174
|
+
function assertedType(object, guard) {
|
|
175
|
+
if (!guard(object)) {
|
|
176
|
+
throw new TypeError('object has an invalid type');
|
|
64
177
|
}
|
|
178
|
+
return object;
|
|
65
179
|
}
|
|
66
180
|
function isTruthy(object) {
|
|
67
181
|
return Boolean(object) === true;
|
|
@@ -373,7 +487,10 @@ function rq(url, options) {
|
|
|
373
487
|
return createRequest(fetchTransport, url, options);
|
|
374
488
|
}
|
|
375
489
|
|
|
490
|
+
exports.assert = assert;
|
|
491
|
+
exports.assertType = assertType;
|
|
376
492
|
exports.asserted = asserted;
|
|
493
|
+
exports.assertedType = assertedType;
|
|
377
494
|
exports.capitalize = capitalize;
|
|
378
495
|
exports.exists = exists;
|
|
379
496
|
exports.existsFile = existsFile;
|
|
@@ -402,5 +519,4 @@ exports.removeFiles = removeFiles;
|
|
|
402
519
|
exports.rq = rq;
|
|
403
520
|
exports.rqc = createRequest;
|
|
404
521
|
exports.sleep = sleep;
|
|
405
|
-
exports.stringOrThrow = stringOrThrow;
|
|
406
522
|
exports.toString = toString;
|
package/node/index.d.ts
CHANGED
|
@@ -16,8 +16,113 @@ declare function remove<T>(array: T[], object: T): void;
|
|
|
16
16
|
declare function noop(): void;
|
|
17
17
|
declare function toString(object: unknown): string;
|
|
18
18
|
|
|
19
|
+
/**
|
|
20
|
+
* Asserts that an object is neither `null` nor `undefined`.
|
|
21
|
+
*
|
|
22
|
+
* If the object is `null` or `undefined`, a `TypeError` is thrown.
|
|
23
|
+
* Otherwise, TypeScript narrows the object to `T`.
|
|
24
|
+
*
|
|
25
|
+
* @template T The type of the object.
|
|
26
|
+
*
|
|
27
|
+
* @param object The object to validate.
|
|
28
|
+
*
|
|
29
|
+
* @throws {TypeError} If the object is `null` or `undefined`.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* const object: string | undefined = Math.random() < 0.5 ? undefined : 'Hello';
|
|
33
|
+
*
|
|
34
|
+
* assert(object);
|
|
35
|
+
*
|
|
36
|
+
* // `object` is now typed as `string`.
|
|
37
|
+
* console.log(object.length);
|
|
38
|
+
*/
|
|
39
|
+
declare function assert<T>(object: T | null | undefined): asserts object is T;
|
|
40
|
+
/**
|
|
41
|
+
* Asserts that an object satisfies the given type guard.
|
|
42
|
+
*
|
|
43
|
+
* If the type guard returns `false`, a `TypeError` is thrown.
|
|
44
|
+
* Otherwise, TypeScript narrows the object to the type accepted by
|
|
45
|
+
* the type guard.
|
|
46
|
+
*
|
|
47
|
+
* @template T The type checked by the type guard.
|
|
48
|
+
*
|
|
49
|
+
* @param object The object to validate.
|
|
50
|
+
* @param guard A type guard used to validate the object.
|
|
51
|
+
*
|
|
52
|
+
* @throws {TypeError} If the object does not satisfy the type guard.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* const object: number | string = Math.random() < 0.5 ? 1 : 'Hello';
|
|
56
|
+
*
|
|
57
|
+
* assertType(object, isNumber);
|
|
58
|
+
*
|
|
59
|
+
* // `object` is now typed as `number`.
|
|
60
|
+
* console.log(object.toFixed(2));
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* const object: unknown = 'hello';
|
|
64
|
+
*
|
|
65
|
+
* assertType(object, isString);
|
|
66
|
+
*
|
|
67
|
+
* // `object` is now typed as `string`.
|
|
68
|
+
* console.log(object.toUpperCase());
|
|
69
|
+
*/
|
|
70
|
+
declare function assertType<T>(object: unknown, guard: (object: unknown) => object is T): asserts object is T;
|
|
71
|
+
/**
|
|
72
|
+
* Asserts that an object is neither `null` nor `undefined` and returns it.
|
|
73
|
+
*
|
|
74
|
+
* If the object is `null` or `undefined`, a `TypeError` is thrown.
|
|
75
|
+
* Otherwise, the object is returned with its type narrowed to `T`.
|
|
76
|
+
*
|
|
77
|
+
* @template T The type of the object.
|
|
78
|
+
*
|
|
79
|
+
* @param object The object to validate.
|
|
80
|
+
*
|
|
81
|
+
* @returns The validated object, narrowed to `T`.
|
|
82
|
+
*
|
|
83
|
+
* @throws {TypeError} If the object is `null` or `undefined`.
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* const object: string | undefined = Math.random() < 0.5 ? undefined : 'Hello';
|
|
87
|
+
*
|
|
88
|
+
* const string = asserted(object);
|
|
89
|
+
*
|
|
90
|
+
* // `object` is now typed as `string`.
|
|
91
|
+
* console.log(string.length);
|
|
92
|
+
*/
|
|
19
93
|
declare function asserted<T>(object: T | null | undefined): T;
|
|
20
|
-
|
|
94
|
+
/**
|
|
95
|
+
* Asserts that an object satisfies the given type guard and returns it
|
|
96
|
+
* with the narrowed type.
|
|
97
|
+
*
|
|
98
|
+
* If the type guard returns `false`, a `TypeError` is thrown.
|
|
99
|
+
*
|
|
100
|
+
* @template T The type checked by the type guard.
|
|
101
|
+
*
|
|
102
|
+
* @param object The object to validate.
|
|
103
|
+
* @param guard A type guard used to validate the object.
|
|
104
|
+
*
|
|
105
|
+
* @returns The validated object, narrowed to `T`.
|
|
106
|
+
*
|
|
107
|
+
* @throws {TypeError} If the object does not satisfy the type guard.
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* const object: number | string = Math.random() < 0.5 ? 1 : 'Hello';
|
|
111
|
+
*
|
|
112
|
+
* const number = assertedType(object, isNumber);
|
|
113
|
+
*
|
|
114
|
+
* // `number` is typed as `number`.
|
|
115
|
+
* console.log(number.toFixed(2));
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* const object: unknown = 'hello';
|
|
119
|
+
*
|
|
120
|
+
* const text = assertedType(object, isString);
|
|
121
|
+
*
|
|
122
|
+
* // `text` is typed as `string`.
|
|
123
|
+
* console.log(text.toUpperCase());
|
|
124
|
+
*/
|
|
125
|
+
declare function assertedType<T>(object: unknown, guard: (object: unknown) => object is T): T;
|
|
21
126
|
declare function isTruthy<T>(object: T): object is Exclude<T, '' | 0 | false | null | undefined>;
|
|
22
127
|
declare function isFalsy(object: unknown): object is '' | 0 | false | null | undefined;
|
|
23
128
|
declare function isNullish(object: unknown): object is null | undefined;
|
|
@@ -146,4 +251,4 @@ declare function rq(url: string, options?: RequestInit): RqRequest;
|
|
|
146
251
|
|
|
147
252
|
declare function createRequest<TOptions>(transport: Transport<TOptions>, url: string, options?: TOptions): RqRequest;
|
|
148
253
|
|
|
149
|
-
export { Fn, Nullable, Prettify, asserted, capitalize, exists, existsFile, existsFileSync, existsFolder, existsFolderSync, existsSync, isBoolean, isFalsy, isFunction, isNotNullish, isNullish, isNumber, isObject, isString, isTruthy, join, listFiles, listFolders, listFoldersSync, noop, padZeros, readJSON, remove, removeFiles, rq, createRequest as rqc, sleep,
|
|
254
|
+
export { Fn, Nullable, Prettify, assert, assertType, asserted, assertedType, capitalize, exists, existsFile, existsFileSync, existsFolder, existsFolderSync, existsSync, isBoolean, isFalsy, isFunction, isNotNullish, isNullish, isNumber, isObject, isString, isTruthy, join, listFiles, listFolders, listFoldersSync, noop, padZeros, readJSON, remove, removeFiles, rq, createRequest as rqc, sleep, toString };
|
package/node/index.js
CHANGED
|
@@ -50,16 +50,130 @@ function remove(array, object) {
|
|
|
50
50
|
array.splice(index, 1);
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
+
/**
|
|
54
|
+
* Asserts that an object is neither `null` nor `undefined`.
|
|
55
|
+
*
|
|
56
|
+
* If the object is `null` or `undefined`, a `TypeError` is thrown.
|
|
57
|
+
* Otherwise, TypeScript narrows the object to `T`.
|
|
58
|
+
*
|
|
59
|
+
* @template T The type of the object.
|
|
60
|
+
*
|
|
61
|
+
* @param object The object to validate.
|
|
62
|
+
*
|
|
63
|
+
* @throws {TypeError} If the object is `null` or `undefined`.
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* const object: string | undefined = Math.random() < 0.5 ? undefined : 'Hello';
|
|
67
|
+
*
|
|
68
|
+
* assert(object);
|
|
69
|
+
*
|
|
70
|
+
* // `object` is now typed as `string`.
|
|
71
|
+
* console.log(object.length);
|
|
72
|
+
*/
|
|
73
|
+
function assert(object) {
|
|
74
|
+
if (object === null || object === undefined) {
|
|
75
|
+
throw new TypeError('object is either null or undefined');
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Asserts that an object satisfies the given type guard.
|
|
80
|
+
*
|
|
81
|
+
* If the type guard returns `false`, a `TypeError` is thrown.
|
|
82
|
+
* Otherwise, TypeScript narrows the object to the type accepted by
|
|
83
|
+
* the type guard.
|
|
84
|
+
*
|
|
85
|
+
* @template T The type checked by the type guard.
|
|
86
|
+
*
|
|
87
|
+
* @param object The object to validate.
|
|
88
|
+
* @param guard A type guard used to validate the object.
|
|
89
|
+
*
|
|
90
|
+
* @throws {TypeError} If the object does not satisfy the type guard.
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* const object: number | string = Math.random() < 0.5 ? 1 : 'Hello';
|
|
94
|
+
*
|
|
95
|
+
* assertType(object, isNumber);
|
|
96
|
+
*
|
|
97
|
+
* // `object` is now typed as `number`.
|
|
98
|
+
* console.log(object.toFixed(2));
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* const object: unknown = 'hello';
|
|
102
|
+
*
|
|
103
|
+
* assertType(object, isString);
|
|
104
|
+
*
|
|
105
|
+
* // `object` is now typed as `string`.
|
|
106
|
+
* console.log(object.toUpperCase());
|
|
107
|
+
*/
|
|
108
|
+
function assertType(object, guard) {
|
|
109
|
+
if (!guard(object)) {
|
|
110
|
+
throw new TypeError('object has an invalid type');
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Asserts that an object is neither `null` nor `undefined` and returns it.
|
|
115
|
+
*
|
|
116
|
+
* If the object is `null` or `undefined`, a `TypeError` is thrown.
|
|
117
|
+
* Otherwise, the object is returned with its type narrowed to `T`.
|
|
118
|
+
*
|
|
119
|
+
* @template T The type of the object.
|
|
120
|
+
*
|
|
121
|
+
* @param object The object to validate.
|
|
122
|
+
*
|
|
123
|
+
* @returns The validated object, narrowed to `T`.
|
|
124
|
+
*
|
|
125
|
+
* @throws {TypeError} If the object is `null` or `undefined`.
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* const object: string | undefined = Math.random() < 0.5 ? undefined : 'Hello';
|
|
129
|
+
*
|
|
130
|
+
* const string = asserted(object);
|
|
131
|
+
*
|
|
132
|
+
* // `object` is now typed as `string`.
|
|
133
|
+
* console.log(string.length);
|
|
134
|
+
*/
|
|
53
135
|
function asserted(object) {
|
|
54
136
|
if (object === null || object === undefined) {
|
|
55
|
-
throw new
|
|
137
|
+
throw new TypeError('object is either null or undefined');
|
|
56
138
|
}
|
|
57
139
|
return object;
|
|
58
140
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
141
|
+
/**
|
|
142
|
+
* Asserts that an object satisfies the given type guard and returns it
|
|
143
|
+
* with the narrowed type.
|
|
144
|
+
*
|
|
145
|
+
* If the type guard returns `false`, a `TypeError` is thrown.
|
|
146
|
+
*
|
|
147
|
+
* @template T The type checked by the type guard.
|
|
148
|
+
*
|
|
149
|
+
* @param object The object to validate.
|
|
150
|
+
* @param guard A type guard used to validate the object.
|
|
151
|
+
*
|
|
152
|
+
* @returns The validated object, narrowed to `T`.
|
|
153
|
+
*
|
|
154
|
+
* @throws {TypeError} If the object does not satisfy the type guard.
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* const object: number | string = Math.random() < 0.5 ? 1 : 'Hello';
|
|
158
|
+
*
|
|
159
|
+
* const number = assertedType(object, isNumber);
|
|
160
|
+
*
|
|
161
|
+
* // `number` is typed as `number`.
|
|
162
|
+
* console.log(number.toFixed(2));
|
|
163
|
+
*
|
|
164
|
+
* @example
|
|
165
|
+
* const object: unknown = 'hello';
|
|
166
|
+
*
|
|
167
|
+
* const text = assertedType(object, isString);
|
|
168
|
+
*
|
|
169
|
+
* // `text` is typed as `string`.
|
|
170
|
+
* console.log(text.toUpperCase());
|
|
171
|
+
*/
|
|
172
|
+
function assertedType(object, guard) {
|
|
173
|
+
if (!guard(object)) {
|
|
174
|
+
throw new TypeError('object has an invalid type');
|
|
62
175
|
}
|
|
176
|
+
return object;
|
|
63
177
|
}
|
|
64
178
|
function isTruthy(object) {
|
|
65
179
|
return Boolean(object) === true;
|
|
@@ -371,4 +485,4 @@ function rq(url, options) {
|
|
|
371
485
|
return createRequest(fetchTransport, url, options);
|
|
372
486
|
}
|
|
373
487
|
|
|
374
|
-
export { asserted, capitalize, exists, existsFile, existsFileSync, existsFolder, existsFolderSync, existsSync, isBoolean, isFalsy, isFunction, isNotNullish, isNullish, isNumber, isObject, isString, isTruthy, join, listFiles, listFolders, listFoldersSync, noop, padZeros, readJSON, remove, removeFiles, rq, createRequest as rqc, sleep,
|
|
488
|
+
export { assert, assertType, asserted, assertedType, capitalize, exists, existsFile, existsFileSync, existsFolder, existsFolderSync, existsSync, isBoolean, isFalsy, isFunction, isNotNullish, isNullish, isNumber, isObject, isString, isTruthy, join, listFiles, listFolders, listFoldersSync, noop, padZeros, readJSON, remove, removeFiles, rq, createRequest as rqc, sleep, toString };
|
package/node/inquirer/index.js
CHANGED
|
@@ -42,6 +42,26 @@ async function confirm(message, defaultAnswer = false) {
|
|
|
42
42
|
return confirmValue;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
+
/**
|
|
46
|
+
* Asserts that an object is neither `null` nor `undefined`.
|
|
47
|
+
*
|
|
48
|
+
* If the object is `null` or `undefined`, a `TypeError` is thrown.
|
|
49
|
+
* Otherwise, TypeScript narrows the object to `T`.
|
|
50
|
+
*
|
|
51
|
+
* @template T The type of the object.
|
|
52
|
+
*
|
|
53
|
+
* @param object The object to validate.
|
|
54
|
+
*
|
|
55
|
+
* @throws {TypeError} If the object is `null` or `undefined`.
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* const object: string | undefined = Math.random() < 0.5 ? undefined : 'Hello';
|
|
59
|
+
*
|
|
60
|
+
* assert(object);
|
|
61
|
+
*
|
|
62
|
+
* // `object` is now typed as `string`.
|
|
63
|
+
* console.log(object.length);
|
|
64
|
+
*/
|
|
45
65
|
function isFalsy(object) {
|
|
46
66
|
return Boolean(object) === false;
|
|
47
67
|
}
|