@naturalcycles/js-lib 14.170.0 → 14.172.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/dist/error/error.model.d.ts +8 -5
- package/dist/error/error.util.d.ts +16 -0
- package/dist/error/error.util.js +51 -2
- package/dist/http/fetcher.d.ts +8 -0
- package/dist/http/fetcher.js +13 -3
- package/dist/index.d.ts +1 -2
- package/dist/index.js +1 -3
- package/dist-esm/error/error.util.js +50 -2
- package/dist-esm/http/fetcher.js +38 -26
- package/dist-esm/index.js +1 -2
- package/package.json +2 -2
- package/src/error/error.model.ts +9 -8
- package/src/error/error.util.ts +68 -2
- package/src/http/fetcher.ts +16 -3
- package/src/index.ts +1 -2
- package/dist/vendor/is.d.ts +0 -226
- package/dist/vendor/is.js +0 -460
- package/dist-esm/vendor/is.js +0 -457
- package/src/vendor/is.ts +0 -833
package/src/vendor/is.ts
DELETED
|
@@ -1,833 +0,0 @@
|
|
|
1
|
-
/// <reference lib="es2018"/>
|
|
2
|
-
/// <reference lib="dom"/>
|
|
3
|
-
/// <reference types="node"/>
|
|
4
|
-
|
|
5
|
-
/*
|
|
6
|
-
From: https://github.com/sindresorhus/is
|
|
7
|
-
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
/* eslint-disable */
|
|
11
|
-
|
|
12
|
-
import { Class, ObservableLike, Primitive, TypedArray } from '../typeFest'
|
|
13
|
-
|
|
14
|
-
const typedArrayTypeNames = [
|
|
15
|
-
'Int8Array',
|
|
16
|
-
'Uint8Array',
|
|
17
|
-
'Uint8ClampedArray',
|
|
18
|
-
'Int16Array',
|
|
19
|
-
'Uint16Array',
|
|
20
|
-
'Int32Array',
|
|
21
|
-
'Uint32Array',
|
|
22
|
-
'Float32Array',
|
|
23
|
-
'Float64Array',
|
|
24
|
-
'BigInt64Array',
|
|
25
|
-
'BigUint64Array',
|
|
26
|
-
] as const
|
|
27
|
-
|
|
28
|
-
type TypedArrayTypeName = (typeof typedArrayTypeNames)[number]
|
|
29
|
-
|
|
30
|
-
function isTypedArrayName(name: unknown): name is TypedArrayTypeName {
|
|
31
|
-
return typedArrayTypeNames.includes(name as TypedArrayTypeName)
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
const objectTypeNames = [
|
|
35
|
-
'Function',
|
|
36
|
-
'Generator',
|
|
37
|
-
'AsyncGenerator',
|
|
38
|
-
'GeneratorFunction',
|
|
39
|
-
'AsyncGeneratorFunction',
|
|
40
|
-
'AsyncFunction',
|
|
41
|
-
'Observable',
|
|
42
|
-
'Array',
|
|
43
|
-
'Buffer',
|
|
44
|
-
'Object',
|
|
45
|
-
'RegExp',
|
|
46
|
-
'Date',
|
|
47
|
-
'Error',
|
|
48
|
-
'Map',
|
|
49
|
-
'Set',
|
|
50
|
-
'WeakMap',
|
|
51
|
-
'WeakSet',
|
|
52
|
-
'ArrayBuffer',
|
|
53
|
-
'SharedArrayBuffer',
|
|
54
|
-
'DataView',
|
|
55
|
-
'Promise',
|
|
56
|
-
'URL',
|
|
57
|
-
'FormData',
|
|
58
|
-
'URLSearchParams',
|
|
59
|
-
'HTMLElement',
|
|
60
|
-
...typedArrayTypeNames,
|
|
61
|
-
] as const
|
|
62
|
-
|
|
63
|
-
type ObjectTypeName = (typeof objectTypeNames)[number]
|
|
64
|
-
|
|
65
|
-
function isObjectTypeName(name: unknown): name is ObjectTypeName {
|
|
66
|
-
return objectTypeNames.includes(name as ObjectTypeName)
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
const primitiveTypeNames = [
|
|
70
|
-
'null',
|
|
71
|
-
'undefined',
|
|
72
|
-
'string',
|
|
73
|
-
'number',
|
|
74
|
-
'bigint',
|
|
75
|
-
'boolean',
|
|
76
|
-
'symbol',
|
|
77
|
-
] as const
|
|
78
|
-
|
|
79
|
-
type PrimitiveTypeName = (typeof primitiveTypeNames)[number]
|
|
80
|
-
|
|
81
|
-
function isPrimitiveTypeName(name: unknown): name is PrimitiveTypeName {
|
|
82
|
-
return primitiveTypeNames.includes(name as PrimitiveTypeName)
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
export type TypeName = ObjectTypeName | PrimitiveTypeName
|
|
86
|
-
|
|
87
|
-
function isOfType<T extends Primitive | Function>(type: PrimitiveTypeName | 'function') {
|
|
88
|
-
return (value: unknown): value is T => typeof value === type
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
const { toString } = Object.prototype
|
|
92
|
-
const getObjectType = (value: unknown): ObjectTypeName | undefined => {
|
|
93
|
-
const objectTypeName = toString.call(value).slice(8, -1)
|
|
94
|
-
|
|
95
|
-
if (/HTML\w+Element/.test(objectTypeName) && is.domElement(value)) {
|
|
96
|
-
return 'HTMLElement'
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
if (isObjectTypeName(objectTypeName)) {
|
|
100
|
-
return objectTypeName
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
return undefined
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
const isObjectOfType =
|
|
107
|
-
<T>(type: ObjectTypeName) =>
|
|
108
|
-
(value: unknown): value is T =>
|
|
109
|
-
getObjectType(value) === type
|
|
110
|
-
|
|
111
|
-
export function is(value: unknown): TypeName {
|
|
112
|
-
if (value === null) {
|
|
113
|
-
return 'null'
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
switch (typeof value) {
|
|
117
|
-
case 'undefined':
|
|
118
|
-
return 'undefined'
|
|
119
|
-
case 'string':
|
|
120
|
-
return 'string'
|
|
121
|
-
case 'number':
|
|
122
|
-
return 'number'
|
|
123
|
-
case 'boolean':
|
|
124
|
-
return 'boolean'
|
|
125
|
-
case 'function':
|
|
126
|
-
return 'Function'
|
|
127
|
-
case 'bigint':
|
|
128
|
-
return 'bigint'
|
|
129
|
-
case 'symbol':
|
|
130
|
-
return 'symbol'
|
|
131
|
-
default:
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
if (is.observable(value)) {
|
|
135
|
-
return 'Observable'
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
if (is.array(value)) {
|
|
139
|
-
return 'Array'
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
if (is.buffer(value)) {
|
|
143
|
-
return 'Buffer'
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
const tagType = getObjectType(value)
|
|
147
|
-
if (tagType) {
|
|
148
|
-
return tagType
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
if (
|
|
152
|
-
(value as any) instanceof String ||
|
|
153
|
-
(value as any) instanceof Boolean ||
|
|
154
|
-
(value as any) instanceof Number
|
|
155
|
-
) {
|
|
156
|
-
throw new TypeError("Please don't use object wrappers for primitive types")
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
return 'Object'
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
is.undefined = isOfType<undefined>('undefined')
|
|
163
|
-
is.string = isOfType<string>('string')
|
|
164
|
-
|
|
165
|
-
const isNumberType = isOfType<number>('number')
|
|
166
|
-
is.number = (value: unknown): value is number => isNumberType(value) && !is.nan(value)
|
|
167
|
-
|
|
168
|
-
is.bigint = isOfType<bigint>('bigint')
|
|
169
|
-
|
|
170
|
-
is.function_ = isOfType<Function>('function')
|
|
171
|
-
|
|
172
|
-
is.null_ = (value: unknown): value is null => value === null
|
|
173
|
-
is.class_ = (value: unknown): value is Class =>
|
|
174
|
-
is.function_(value) && value.toString().startsWith('class ')
|
|
175
|
-
is.boolean = (value: unknown): value is boolean => value === true || value === false
|
|
176
|
-
is.symbol = isOfType<symbol>('symbol')
|
|
177
|
-
|
|
178
|
-
is.numericString = (value: unknown): value is string =>
|
|
179
|
-
is.string(value) && !is.emptyStringOrWhitespace(value) && !Number.isNaN(Number(value))
|
|
180
|
-
|
|
181
|
-
is.array = <T = unknown>(value: unknown, assertion?: (value: T) => value is T): value is T[] => {
|
|
182
|
-
if (!Array.isArray(value)) {
|
|
183
|
-
return false
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
if (!is.function_(assertion)) {
|
|
187
|
-
return true
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
return value.every(assertion)
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
is.buffer = (value: unknown): value is Buffer =>
|
|
194
|
-
(value as any)?.constructor?.isBuffer?.(value) ?? false
|
|
195
|
-
|
|
196
|
-
is.nullOrUndefined = (value: unknown): value is null | undefined =>
|
|
197
|
-
is.null_(value) || is.undefined(value)
|
|
198
|
-
is.object = (value: unknown): value is object =>
|
|
199
|
-
!is.null_(value) && (typeof value === 'object' || is.function_(value))
|
|
200
|
-
is.iterable = <T = unknown>(value: unknown): value is IterableIterator<T> =>
|
|
201
|
-
is.function_((value as IterableIterator<T>)?.[Symbol.iterator])
|
|
202
|
-
|
|
203
|
-
is.asyncIterable = <T = unknown>(value: unknown): value is AsyncIterableIterator<T> =>
|
|
204
|
-
is.function_((value as AsyncIterableIterator<T>)?.[Symbol.asyncIterator])
|
|
205
|
-
|
|
206
|
-
is.generator = (value: unknown): value is Generator =>
|
|
207
|
-
is.iterable(value) && is.function_(value.next) && is.function_(value.throw)
|
|
208
|
-
|
|
209
|
-
is.asyncGenerator = (value: unknown): value is AsyncGenerator =>
|
|
210
|
-
is.asyncIterable(value) && is.function_(value.next) && is.function_(value.throw)
|
|
211
|
-
|
|
212
|
-
is.nativePromise = <T = unknown>(value: unknown): value is Promise<T> =>
|
|
213
|
-
isObjectOfType<Promise<T>>('Promise')(value)
|
|
214
|
-
|
|
215
|
-
const hasPromiseAPI = <T = unknown>(value: unknown): value is Promise<T> =>
|
|
216
|
-
is.function_((value as Promise<T>)?.then) && is.function_((value as Promise<T>)?.catch)
|
|
217
|
-
|
|
218
|
-
is.promise = <T = unknown>(value: unknown): value is Promise<T> =>
|
|
219
|
-
is.nativePromise(value) || hasPromiseAPI(value)
|
|
220
|
-
|
|
221
|
-
is.generatorFunction = isObjectOfType<GeneratorFunction>('GeneratorFunction')
|
|
222
|
-
|
|
223
|
-
is.asyncGeneratorFunction = (value: unknown): value is (...args: any[]) => Promise<unknown> =>
|
|
224
|
-
getObjectType(value) === 'AsyncGeneratorFunction'
|
|
225
|
-
|
|
226
|
-
is.asyncFunction = <T = unknown>(value: unknown): value is (...args: any[]) => Promise<T> =>
|
|
227
|
-
getObjectType(value) === 'AsyncFunction'
|
|
228
|
-
|
|
229
|
-
is.boundFunction = (value: unknown): value is Function =>
|
|
230
|
-
is.function_(value) && !value.hasOwnProperty('prototype')
|
|
231
|
-
|
|
232
|
-
is.regExp = isObjectOfType<RegExp>('RegExp')
|
|
233
|
-
is.date = isObjectOfType<Date>('Date')
|
|
234
|
-
is.error = isObjectOfType<Error>('Error')
|
|
235
|
-
is.map = <Key = unknown, Value = unknown>(value: unknown): value is Map<Key, Value> =>
|
|
236
|
-
isObjectOfType<Map<Key, Value>>('Map')(value)
|
|
237
|
-
is.set = <T = unknown>(value: unknown): value is Set<T> => isObjectOfType<Set<T>>('Set')(value)
|
|
238
|
-
is.weakMap = <Key extends object = object, Value = unknown>(
|
|
239
|
-
value: unknown,
|
|
240
|
-
): value is WeakMap<Key, Value> => isObjectOfType<WeakMap<Key, Value>>('WeakMap')(value)
|
|
241
|
-
is.weakSet = (value: unknown): value is WeakSet<object> =>
|
|
242
|
-
isObjectOfType<WeakSet<object>>('WeakSet')(value)
|
|
243
|
-
|
|
244
|
-
is.int8Array = isObjectOfType<Int8Array>('Int8Array')
|
|
245
|
-
is.uint8Array = isObjectOfType<Uint8Array>('Uint8Array')
|
|
246
|
-
is.uint8ClampedArray = isObjectOfType<Uint8ClampedArray>('Uint8ClampedArray')
|
|
247
|
-
is.int16Array = isObjectOfType<Int16Array>('Int16Array')
|
|
248
|
-
is.uint16Array = isObjectOfType<Uint16Array>('Uint16Array')
|
|
249
|
-
is.int32Array = isObjectOfType<Int32Array>('Int32Array')
|
|
250
|
-
is.uint32Array = isObjectOfType<Uint32Array>('Uint32Array')
|
|
251
|
-
is.float32Array = isObjectOfType<Float32Array>('Float32Array')
|
|
252
|
-
is.float64Array = isObjectOfType<Float64Array>('Float64Array')
|
|
253
|
-
is.bigInt64Array = isObjectOfType<BigInt64Array>('BigInt64Array')
|
|
254
|
-
is.bigUint64Array = isObjectOfType<BigUint64Array>('BigUint64Array')
|
|
255
|
-
|
|
256
|
-
is.arrayBuffer = isObjectOfType<ArrayBuffer>('ArrayBuffer')
|
|
257
|
-
is.sharedArrayBuffer = isObjectOfType<SharedArrayBuffer>('SharedArrayBuffer')
|
|
258
|
-
is.dataView = isObjectOfType<DataView>('DataView')
|
|
259
|
-
|
|
260
|
-
is.directInstanceOf = <T>(instance: unknown, class_: Class<T>): instance is T =>
|
|
261
|
-
Object.getPrototypeOf(instance) === class_.prototype
|
|
262
|
-
is.urlInstance = (value: unknown): value is URL => isObjectOfType<URL>('URL')(value)
|
|
263
|
-
|
|
264
|
-
is.urlString = (value: unknown): value is string => {
|
|
265
|
-
if (!is.string(value)) {
|
|
266
|
-
return false
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
try {
|
|
270
|
-
new URL(value)
|
|
271
|
-
return true
|
|
272
|
-
} catch {
|
|
273
|
-
return false
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
// TODO: Use the `not` operator with a type guard here when it's available.
|
|
278
|
-
// Example: `is.truthy = (value: unknown): value is (not false | not 0 | not '' | not undefined | not null) => Boolean(value);`
|
|
279
|
-
is.truthy = (value: unknown) => Boolean(value)
|
|
280
|
-
// Example: `is.falsy = (value: unknown): value is (not true | 0 | '' | undefined | null) => Boolean(value);`
|
|
281
|
-
is.falsy = (value: unknown) => !value
|
|
282
|
-
|
|
283
|
-
is.nan = (value: unknown) => Number.isNaN(value as number)
|
|
284
|
-
|
|
285
|
-
is.primitive = (value: unknown): value is Primitive =>
|
|
286
|
-
is.null_(value) || isPrimitiveTypeName(typeof value)
|
|
287
|
-
|
|
288
|
-
is.integer = (value: unknown): value is number => Number.isInteger(value as number)
|
|
289
|
-
is.safeInteger = (value: unknown): value is number => Number.isSafeInteger(value as number)
|
|
290
|
-
|
|
291
|
-
is.plainObject = <Value = unknown>(value: unknown): value is Record<PropertyKey, Value> => {
|
|
292
|
-
// From: https://github.com/sindresorhus/is-plain-obj/blob/main/index.js
|
|
293
|
-
if (toString.call(value) !== '[object Object]') {
|
|
294
|
-
return false
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
const prototype = Object.getPrototypeOf(value)
|
|
298
|
-
|
|
299
|
-
return prototype === null || prototype === Object.getPrototypeOf({})
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
is.typedArray = (value: unknown): value is TypedArray => isTypedArrayName(getObjectType(value))
|
|
303
|
-
|
|
304
|
-
export interface ArrayLike<T> {
|
|
305
|
-
readonly [index: number]: T
|
|
306
|
-
readonly length: number
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
const isValidLength = (value: unknown): value is number => is.safeInteger(value) && value >= 0
|
|
310
|
-
is.arrayLike = <T = unknown>(value: unknown): value is ArrayLike<T> =>
|
|
311
|
-
!is.nullOrUndefined(value) &&
|
|
312
|
-
!is.function_(value) &&
|
|
313
|
-
isValidLength((value as ArrayLike<T>).length)
|
|
314
|
-
|
|
315
|
-
is.inRange = (value: number, range: number | number[]): value is number => {
|
|
316
|
-
if (is.number(range)) {
|
|
317
|
-
return value >= Math.min(0, range) && value <= Math.max(range, 0)
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
if (is.array(range) && range.length === 2) {
|
|
321
|
-
return value >= Math.min(...range) && value <= Math.max(...range)
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
throw new TypeError(`Invalid range: ${JSON.stringify(range)}`)
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
const NODE_TYPE_ELEMENT = 1
|
|
328
|
-
const DOM_PROPERTIES_TO_CHECK: (keyof HTMLElement)[] = [
|
|
329
|
-
'innerHTML',
|
|
330
|
-
'ownerDocument',
|
|
331
|
-
'style',
|
|
332
|
-
'attributes',
|
|
333
|
-
'nodeValue',
|
|
334
|
-
]
|
|
335
|
-
|
|
336
|
-
is.domElement = (value: unknown): value is HTMLElement => {
|
|
337
|
-
return (
|
|
338
|
-
is.object(value) &&
|
|
339
|
-
(value as HTMLElement).nodeType === NODE_TYPE_ELEMENT &&
|
|
340
|
-
is.string((value as HTMLElement).nodeName) &&
|
|
341
|
-
!is.plainObject(value) &&
|
|
342
|
-
DOM_PROPERTIES_TO_CHECK.every(property => property in value)
|
|
343
|
-
)
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
is.observable = (value: unknown): value is ObservableLike => {
|
|
347
|
-
if (!value) {
|
|
348
|
-
return false
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
if (value === (value as any)[Symbol.observable]?.()) {
|
|
352
|
-
return true
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
if (value === (value as any)['@@observable']?.()) {
|
|
356
|
-
return true
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
return false
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
export interface NodeStream extends NodeJS.EventEmitter {
|
|
363
|
-
pipe<T extends NodeJS.WritableStream>(destination: T, options?: { end?: boolean }): T
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
is.nodeStream = (value: unknown): value is NodeStream =>
|
|
367
|
-
is.object(value) && is.function_((value as NodeStream).pipe) && !is.observable(value)
|
|
368
|
-
|
|
369
|
-
is.infinite = (value: unknown): value is number => value === Infinity || value === -Infinity
|
|
370
|
-
|
|
371
|
-
const isAbsoluteMod2 =
|
|
372
|
-
(remainder: number) =>
|
|
373
|
-
(value: number): value is number =>
|
|
374
|
-
is.integer(value) && Math.abs(value % 2) === remainder
|
|
375
|
-
is.evenInteger = isAbsoluteMod2(0)
|
|
376
|
-
is.oddInteger = isAbsoluteMod2(1)
|
|
377
|
-
|
|
378
|
-
is.emptyArray = (value: unknown): value is never[] => is.array(value) && value.length === 0
|
|
379
|
-
is.nonEmptyArray = (value: unknown): value is unknown[] => is.array(value) && value.length > 0
|
|
380
|
-
|
|
381
|
-
is.emptyString = (value: unknown): value is '' => is.string(value) && value.length === 0
|
|
382
|
-
|
|
383
|
-
// TODO: Use `not ''` when the `not` operator is available.
|
|
384
|
-
is.nonEmptyString = (value: unknown): value is string => is.string(value) && value.length > 0
|
|
385
|
-
|
|
386
|
-
const isWhiteSpaceString = (value: unknown): value is string =>
|
|
387
|
-
is.string(value) && !/\S/.test(value)
|
|
388
|
-
is.emptyStringOrWhitespace = (value: unknown): value is string =>
|
|
389
|
-
is.emptyString(value) || isWhiteSpaceString(value)
|
|
390
|
-
|
|
391
|
-
is.emptyObject = <Key extends keyof any = string>(value: unknown): value is Record<Key, never> =>
|
|
392
|
-
is.object(value) && !is.map(value) && !is.set(value) && Object.keys(value).length === 0
|
|
393
|
-
|
|
394
|
-
// TODO: Use `not` operator here to remove `Map` and `Set` from type guard:
|
|
395
|
-
// - https://github.com/Microsoft/TypeScript/pull/29317
|
|
396
|
-
is.nonEmptyObject = <Key extends keyof any = string, Value = unknown>(
|
|
397
|
-
value: unknown,
|
|
398
|
-
): value is Record<Key, Value> =>
|
|
399
|
-
is.object(value) && !is.map(value) && !is.set(value) && Object.keys(value).length > 0
|
|
400
|
-
|
|
401
|
-
is.emptySet = (value: unknown): value is Set<never> => is.set(value) && value.size === 0
|
|
402
|
-
is.nonEmptySet = <T = unknown>(value: unknown): value is Set<T> => is.set(value) && value.size > 0
|
|
403
|
-
|
|
404
|
-
is.emptyMap = (value: unknown): value is Map<never, never> => is.map(value) && value.size === 0
|
|
405
|
-
is.nonEmptyMap = <Key = unknown, Value = unknown>(value: unknown): value is Map<Key, Value> =>
|
|
406
|
-
is.map(value) && value.size > 0
|
|
407
|
-
|
|
408
|
-
// `PropertyKey` is any value that can be used as an object key (string, number, or symbol)
|
|
409
|
-
is.propertyKey = (value: unknown): value is PropertyKey =>
|
|
410
|
-
is.any([is.string, is.number, is.symbol], value)
|
|
411
|
-
is.formData = (value: unknown): value is FormData => isObjectOfType<FormData>('FormData')(value)
|
|
412
|
-
|
|
413
|
-
is.urlSearchParams = (value: unknown): value is URLSearchParams =>
|
|
414
|
-
isObjectOfType<URLSearchParams>('URLSearchParams')(value)
|
|
415
|
-
|
|
416
|
-
export type Predicate = (value: unknown) => boolean
|
|
417
|
-
|
|
418
|
-
type ArrayMethod = (
|
|
419
|
-
fn: (value: unknown, index: number, array: unknown[]) => boolean,
|
|
420
|
-
thisArg?: unknown,
|
|
421
|
-
) => boolean
|
|
422
|
-
|
|
423
|
-
const predicateOnArray = (method: ArrayMethod, predicate: Predicate, values: unknown[]) => {
|
|
424
|
-
if (!is.function_(predicate)) {
|
|
425
|
-
throw new TypeError(`Invalid predicate: ${JSON.stringify(predicate)}`)
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
if (values.length === 0) {
|
|
429
|
-
throw new TypeError('Invalid number of values')
|
|
430
|
-
}
|
|
431
|
-
|
|
432
|
-
return method.call(values, predicate)
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
is.any = (predicate: Predicate | Predicate[], ...values: unknown[]): boolean => {
|
|
436
|
-
const predicates = is.array(predicate) ? predicate : [predicate]
|
|
437
|
-
return predicates.some(singlePredicate =>
|
|
438
|
-
predicateOnArray(Array.prototype.some, singlePredicate, values),
|
|
439
|
-
)
|
|
440
|
-
}
|
|
441
|
-
|
|
442
|
-
is.all = (predicate: Predicate, ...values: unknown[]): boolean =>
|
|
443
|
-
predicateOnArray(Array.prototype.every, predicate, values)
|
|
444
|
-
|
|
445
|
-
const assertType = (
|
|
446
|
-
condition: boolean,
|
|
447
|
-
description: string,
|
|
448
|
-
value: unknown,
|
|
449
|
-
options: { multipleValues?: boolean } = {},
|
|
450
|
-
): asserts condition => {
|
|
451
|
-
if (!condition) {
|
|
452
|
-
const { multipleValues } = options
|
|
453
|
-
const valuesMessage = multipleValues
|
|
454
|
-
? `received values of types ${[
|
|
455
|
-
...new Set((value as any[]).map(singleValue => `\`${is(singleValue)}\``)),
|
|
456
|
-
].join(', ')}`
|
|
457
|
-
: `received value of type \`${is(value)}\``
|
|
458
|
-
|
|
459
|
-
throw new TypeError(`Expected value which is \`${description}\`, ${valuesMessage}.`)
|
|
460
|
-
}
|
|
461
|
-
}
|
|
462
|
-
|
|
463
|
-
export const enum AssertionTypeDescription {
|
|
464
|
-
class_ = 'Class',
|
|
465
|
-
numericString = 'string with a number',
|
|
466
|
-
nullOrUndefined = 'null or undefined',
|
|
467
|
-
iterable = 'Iterable',
|
|
468
|
-
asyncIterable = 'AsyncIterable',
|
|
469
|
-
nativePromise = 'native Promise',
|
|
470
|
-
urlString = 'string with a URL',
|
|
471
|
-
truthy = 'truthy',
|
|
472
|
-
falsy = 'falsy',
|
|
473
|
-
nan = 'NaN',
|
|
474
|
-
primitive = 'primitive',
|
|
475
|
-
integer = 'integer',
|
|
476
|
-
safeInteger = 'integer',
|
|
477
|
-
plainObject = 'plain object',
|
|
478
|
-
arrayLike = 'array-like',
|
|
479
|
-
typedArray = 'TypedArray',
|
|
480
|
-
domElement = 'HTMLElement',
|
|
481
|
-
nodeStream = 'Node.js Stream',
|
|
482
|
-
infinite = 'infinite number',
|
|
483
|
-
emptyArray = 'empty array',
|
|
484
|
-
nonEmptyArray = 'non-empty array',
|
|
485
|
-
emptyString = 'empty string',
|
|
486
|
-
nonEmptyString = 'non-empty string',
|
|
487
|
-
emptyStringOrWhitespace = 'empty string or whitespace',
|
|
488
|
-
emptyObject = 'empty object',
|
|
489
|
-
nonEmptyObject = 'non-empty object',
|
|
490
|
-
emptySet = 'empty set',
|
|
491
|
-
nonEmptySet = 'non-empty set',
|
|
492
|
-
emptyMap = 'empty map',
|
|
493
|
-
nonEmptyMap = 'non-empty map',
|
|
494
|
-
|
|
495
|
-
evenInteger = 'even integer',
|
|
496
|
-
oddInteger = 'odd integer',
|
|
497
|
-
|
|
498
|
-
directInstanceOf = 'T',
|
|
499
|
-
inRange = 'in range',
|
|
500
|
-
|
|
501
|
-
any = 'predicate returns truthy for any value',
|
|
502
|
-
all = 'predicate returns truthy for all values',
|
|
503
|
-
}
|
|
504
|
-
|
|
505
|
-
// Type assertions have to be declared with an explicit type.
|
|
506
|
-
interface Assert {
|
|
507
|
-
// Unknowns.
|
|
508
|
-
undefined: (value: unknown) => asserts value is undefined
|
|
509
|
-
string: (value: unknown) => asserts value is string
|
|
510
|
-
number: (value: unknown) => asserts value is number
|
|
511
|
-
bigint: (value: unknown) => asserts value is bigint
|
|
512
|
-
|
|
513
|
-
function_: (value: unknown) => asserts value is Function
|
|
514
|
-
null_: (value: unknown) => asserts value is null
|
|
515
|
-
class_: (value: unknown) => asserts value is Class
|
|
516
|
-
boolean: (value: unknown) => asserts value is boolean
|
|
517
|
-
symbol: (value: unknown) => asserts value is symbol
|
|
518
|
-
numericString: (value: unknown) => asserts value is string
|
|
519
|
-
array: <T = unknown>(
|
|
520
|
-
value: unknown,
|
|
521
|
-
assertion?: (element: unknown) => asserts element is T,
|
|
522
|
-
) => asserts value is T[]
|
|
523
|
-
buffer: (value: unknown) => asserts value is Buffer
|
|
524
|
-
nullOrUndefined: (value: unknown) => asserts value is null | undefined
|
|
525
|
-
object: <Key extends keyof any = string, Value = unknown>(
|
|
526
|
-
value: unknown,
|
|
527
|
-
) => asserts value is Record<Key, Value>
|
|
528
|
-
iterable: <T = unknown>(value: unknown) => asserts value is Iterable<T>
|
|
529
|
-
asyncIterable: <T = unknown>(value: unknown) => asserts value is AsyncIterable<T>
|
|
530
|
-
generator: (value: unknown) => asserts value is Generator
|
|
531
|
-
asyncGenerator: (value: unknown) => asserts value is AsyncGenerator
|
|
532
|
-
nativePromise: <T = unknown>(value: unknown) => asserts value is Promise<T>
|
|
533
|
-
promise: <T = unknown>(value: unknown) => asserts value is Promise<T>
|
|
534
|
-
generatorFunction: (value: unknown) => asserts value is GeneratorFunction
|
|
535
|
-
asyncGeneratorFunction: (value: unknown) => asserts value is AsyncGeneratorFunction
|
|
536
|
-
|
|
537
|
-
asyncFunction: (value: unknown) => asserts value is Function
|
|
538
|
-
|
|
539
|
-
boundFunction: (value: unknown) => asserts value is Function
|
|
540
|
-
regExp: (value: unknown) => asserts value is RegExp
|
|
541
|
-
date: (value: unknown) => asserts value is Date
|
|
542
|
-
error: (value: unknown) => asserts value is Error
|
|
543
|
-
map: <Key = unknown, Value = unknown>(value: unknown) => asserts value is Map<Key, Value>
|
|
544
|
-
set: <T = unknown>(value: unknown) => asserts value is Set<T>
|
|
545
|
-
weakMap: <Key extends object = object, Value = unknown>(
|
|
546
|
-
value: unknown,
|
|
547
|
-
) => asserts value is WeakMap<Key, Value>
|
|
548
|
-
weakSet: <T extends object = object>(value: unknown) => asserts value is WeakSet<T>
|
|
549
|
-
int8Array: (value: unknown) => asserts value is Int8Array
|
|
550
|
-
uint8Array: (value: unknown) => asserts value is Uint8Array
|
|
551
|
-
uint8ClampedArray: (value: unknown) => asserts value is Uint8ClampedArray
|
|
552
|
-
int16Array: (value: unknown) => asserts value is Int16Array
|
|
553
|
-
uint16Array: (value: unknown) => asserts value is Uint16Array
|
|
554
|
-
int32Array: (value: unknown) => asserts value is Int32Array
|
|
555
|
-
uint32Array: (value: unknown) => asserts value is Uint32Array
|
|
556
|
-
float32Array: (value: unknown) => asserts value is Float32Array
|
|
557
|
-
float64Array: (value: unknown) => asserts value is Float64Array
|
|
558
|
-
bigInt64Array: (value: unknown) => asserts value is BigInt64Array
|
|
559
|
-
bigUint64Array: (value: unknown) => asserts value is BigUint64Array
|
|
560
|
-
arrayBuffer: (value: unknown) => asserts value is ArrayBuffer
|
|
561
|
-
sharedArrayBuffer: (value: unknown) => asserts value is SharedArrayBuffer
|
|
562
|
-
dataView: (value: unknown) => asserts value is DataView
|
|
563
|
-
urlInstance: (value: unknown) => asserts value is URL
|
|
564
|
-
urlString: (value: unknown) => asserts value is string
|
|
565
|
-
truthy: (value: unknown) => asserts value is unknown
|
|
566
|
-
falsy: (value: unknown) => asserts value is unknown
|
|
567
|
-
nan: (value: unknown) => asserts value is unknown
|
|
568
|
-
primitive: (value: unknown) => asserts value is Primitive
|
|
569
|
-
integer: (value: unknown) => asserts value is number
|
|
570
|
-
safeInteger: (value: unknown) => asserts value is number
|
|
571
|
-
plainObject: <Value = unknown>(value: unknown) => asserts value is Record<PropertyKey, Value>
|
|
572
|
-
typedArray: (value: unknown) => asserts value is TypedArray
|
|
573
|
-
arrayLike: <T = unknown>(value: unknown) => asserts value is ArrayLike<T>
|
|
574
|
-
domElement: (value: unknown) => asserts value is HTMLElement
|
|
575
|
-
observable: (value: unknown) => asserts value is ObservableLike
|
|
576
|
-
nodeStream: (value: unknown) => asserts value is NodeStream
|
|
577
|
-
infinite: (value: unknown) => asserts value is number
|
|
578
|
-
emptyArray: (value: unknown) => asserts value is never[]
|
|
579
|
-
nonEmptyArray: (value: unknown) => asserts value is unknown[]
|
|
580
|
-
emptyString: (value: unknown) => asserts value is ''
|
|
581
|
-
nonEmptyString: (value: unknown) => asserts value is string
|
|
582
|
-
emptyStringOrWhitespace: (value: unknown) => asserts value is string
|
|
583
|
-
emptyObject: <Key extends keyof any = string>(
|
|
584
|
-
value: unknown,
|
|
585
|
-
) => asserts value is Record<Key, never>
|
|
586
|
-
nonEmptyObject: <Key extends keyof any = string, Value = unknown>(
|
|
587
|
-
value: unknown,
|
|
588
|
-
) => asserts value is Record<Key, Value>
|
|
589
|
-
emptySet: (value: unknown) => asserts value is Set<never>
|
|
590
|
-
nonEmptySet: <T = unknown>(value: unknown) => asserts value is Set<T>
|
|
591
|
-
emptyMap: (value: unknown) => asserts value is Map<never, never>
|
|
592
|
-
nonEmptyMap: <Key = unknown, Value = unknown>(value: unknown) => asserts value is Map<Key, Value>
|
|
593
|
-
propertyKey: (value: unknown) => asserts value is PropertyKey
|
|
594
|
-
formData: (value: unknown) => asserts value is FormData
|
|
595
|
-
urlSearchParams: (value: unknown) => asserts value is URLSearchParams
|
|
596
|
-
|
|
597
|
-
// Numbers.
|
|
598
|
-
evenInteger: (value: number) => asserts value is number
|
|
599
|
-
oddInteger: (value: number) => asserts value is number
|
|
600
|
-
|
|
601
|
-
// Two arguments.
|
|
602
|
-
directInstanceOf: <T>(instance: unknown, class_: Class<T>) => asserts instance is T
|
|
603
|
-
inRange: (value: number, range: number | number[]) => asserts value is number
|
|
604
|
-
|
|
605
|
-
// Variadic functions.
|
|
606
|
-
any: (predicate: Predicate | Predicate[], ...values: unknown[]) => void | never
|
|
607
|
-
all: (predicate: Predicate, ...values: unknown[]) => void | never
|
|
608
|
-
}
|
|
609
|
-
|
|
610
|
-
export const assert: Assert = {
|
|
611
|
-
// Unknowns.
|
|
612
|
-
undefined: (value: unknown): asserts value is undefined =>
|
|
613
|
-
assertType(is.undefined(value), 'undefined', value),
|
|
614
|
-
string: (value: unknown): asserts value is string =>
|
|
615
|
-
assertType(is.string(value), 'string', value),
|
|
616
|
-
number: (value: unknown): asserts value is number =>
|
|
617
|
-
assertType(is.number(value), 'number', value),
|
|
618
|
-
bigint: (value: unknown): asserts value is bigint =>
|
|
619
|
-
assertType(is.bigint(value), 'bigint', value),
|
|
620
|
-
|
|
621
|
-
function_: (value: unknown): asserts value is Function =>
|
|
622
|
-
assertType(is.function_(value), 'Function', value),
|
|
623
|
-
null_: (value: unknown): asserts value is null => assertType(is.null_(value), 'null', value),
|
|
624
|
-
class_: (value: unknown): asserts value is Class =>
|
|
625
|
-
assertType(is.class_(value), AssertionTypeDescription.class_, value),
|
|
626
|
-
boolean: (value: unknown): asserts value is boolean =>
|
|
627
|
-
assertType(is.boolean(value), 'boolean', value),
|
|
628
|
-
symbol: (value: unknown): asserts value is symbol =>
|
|
629
|
-
assertType(is.symbol(value), 'symbol', value),
|
|
630
|
-
numericString: (value: unknown): asserts value is string =>
|
|
631
|
-
assertType(is.numericString(value), AssertionTypeDescription.numericString, value),
|
|
632
|
-
array: <T = unknown>(
|
|
633
|
-
value: unknown,
|
|
634
|
-
assertion?: (element: unknown) => asserts element is T,
|
|
635
|
-
): asserts value is T[] => {
|
|
636
|
-
const assert: (condition: boolean, description: string, value: unknown) => asserts condition =
|
|
637
|
-
assertType
|
|
638
|
-
assert(is.array(value), 'Array', value)
|
|
639
|
-
|
|
640
|
-
if (assertion) {
|
|
641
|
-
value.forEach(assertion)
|
|
642
|
-
}
|
|
643
|
-
},
|
|
644
|
-
buffer: (value: unknown): asserts value is Buffer =>
|
|
645
|
-
assertType(is.buffer(value), 'Buffer', value),
|
|
646
|
-
nullOrUndefined: (value: unknown): asserts value is null | undefined =>
|
|
647
|
-
assertType(is.nullOrUndefined(value), AssertionTypeDescription.nullOrUndefined, value),
|
|
648
|
-
object: (value: unknown): asserts value is object =>
|
|
649
|
-
assertType(is.object(value), 'Object', value),
|
|
650
|
-
iterable: <T = unknown>(value: unknown): asserts value is Iterable<T> =>
|
|
651
|
-
assertType(is.iterable(value), AssertionTypeDescription.iterable, value),
|
|
652
|
-
asyncIterable: <T = unknown>(value: unknown): asserts value is AsyncIterable<T> =>
|
|
653
|
-
assertType(is.asyncIterable(value), AssertionTypeDescription.asyncIterable, value),
|
|
654
|
-
generator: (value: unknown): asserts value is Generator =>
|
|
655
|
-
assertType(is.generator(value), 'Generator', value),
|
|
656
|
-
asyncGenerator: (value: unknown): asserts value is AsyncGenerator =>
|
|
657
|
-
assertType(is.asyncGenerator(value), 'AsyncGenerator', value),
|
|
658
|
-
nativePromise: <T = unknown>(value: unknown): asserts value is Promise<T> =>
|
|
659
|
-
assertType(is.nativePromise(value), AssertionTypeDescription.nativePromise, value),
|
|
660
|
-
promise: <T = unknown>(value: unknown): asserts value is Promise<T> =>
|
|
661
|
-
assertType(is.promise(value), 'Promise', value),
|
|
662
|
-
generatorFunction: (value: unknown): asserts value is GeneratorFunction =>
|
|
663
|
-
assertType(is.generatorFunction(value), 'GeneratorFunction', value),
|
|
664
|
-
asyncGeneratorFunction: (value: unknown): asserts value is AsyncGeneratorFunction =>
|
|
665
|
-
assertType(is.asyncGeneratorFunction(value), 'AsyncGeneratorFunction', value),
|
|
666
|
-
|
|
667
|
-
asyncFunction: (value: unknown): asserts value is Function =>
|
|
668
|
-
assertType(is.asyncFunction(value), 'AsyncFunction', value),
|
|
669
|
-
|
|
670
|
-
boundFunction: (value: unknown): asserts value is Function =>
|
|
671
|
-
assertType(is.boundFunction(value), 'Function', value),
|
|
672
|
-
regExp: (value: unknown): asserts value is RegExp =>
|
|
673
|
-
assertType(is.regExp(value), 'RegExp', value),
|
|
674
|
-
date: (value: unknown): asserts value is Date => assertType(is.date(value), 'Date', value),
|
|
675
|
-
error: (value: unknown): asserts value is Error => assertType(is.error(value), 'Error', value),
|
|
676
|
-
map: <Key = unknown, Value = unknown>(value: unknown): asserts value is Map<Key, Value> =>
|
|
677
|
-
assertType(is.map(value), 'Map', value),
|
|
678
|
-
set: <T = unknown>(value: unknown): asserts value is Set<T> =>
|
|
679
|
-
assertType(is.set(value), 'Set', value),
|
|
680
|
-
weakMap: <Key extends object = object, Value = unknown>(
|
|
681
|
-
value: unknown,
|
|
682
|
-
): asserts value is WeakMap<Key, Value> => assertType(is.weakMap(value), 'WeakMap', value),
|
|
683
|
-
weakSet: <T extends object = object>(value: unknown): asserts value is WeakSet<T> =>
|
|
684
|
-
assertType(is.weakSet(value), 'WeakSet', value),
|
|
685
|
-
int8Array: (value: unknown): asserts value is Int8Array =>
|
|
686
|
-
assertType(is.int8Array(value), 'Int8Array', value),
|
|
687
|
-
uint8Array: (value: unknown): asserts value is Uint8Array =>
|
|
688
|
-
assertType(is.uint8Array(value), 'Uint8Array', value),
|
|
689
|
-
uint8ClampedArray: (value: unknown): asserts value is Uint8ClampedArray =>
|
|
690
|
-
assertType(is.uint8ClampedArray(value), 'Uint8ClampedArray', value),
|
|
691
|
-
int16Array: (value: unknown): asserts value is Int16Array =>
|
|
692
|
-
assertType(is.int16Array(value), 'Int16Array', value),
|
|
693
|
-
uint16Array: (value: unknown): asserts value is Uint16Array =>
|
|
694
|
-
assertType(is.uint16Array(value), 'Uint16Array', value),
|
|
695
|
-
int32Array: (value: unknown): asserts value is Int32Array =>
|
|
696
|
-
assertType(is.int32Array(value), 'Int32Array', value),
|
|
697
|
-
uint32Array: (value: unknown): asserts value is Uint32Array =>
|
|
698
|
-
assertType(is.uint32Array(value), 'Uint32Array', value),
|
|
699
|
-
float32Array: (value: unknown): asserts value is Float32Array =>
|
|
700
|
-
assertType(is.float32Array(value), 'Float32Array', value),
|
|
701
|
-
float64Array: (value: unknown): asserts value is Float64Array =>
|
|
702
|
-
assertType(is.float64Array(value), 'Float64Array', value),
|
|
703
|
-
bigInt64Array: (value: unknown): asserts value is BigInt64Array =>
|
|
704
|
-
assertType(is.bigInt64Array(value), 'BigInt64Array', value),
|
|
705
|
-
bigUint64Array: (value: unknown): asserts value is BigUint64Array =>
|
|
706
|
-
assertType(is.bigUint64Array(value), 'BigUint64Array', value),
|
|
707
|
-
arrayBuffer: (value: unknown): asserts value is ArrayBuffer =>
|
|
708
|
-
assertType(is.arrayBuffer(value), 'ArrayBuffer', value),
|
|
709
|
-
sharedArrayBuffer: (value: unknown): asserts value is SharedArrayBuffer =>
|
|
710
|
-
assertType(is.sharedArrayBuffer(value), 'SharedArrayBuffer', value),
|
|
711
|
-
dataView: (value: unknown): asserts value is DataView =>
|
|
712
|
-
assertType(is.dataView(value), 'DataView', value),
|
|
713
|
-
urlInstance: (value: unknown): asserts value is URL =>
|
|
714
|
-
assertType(is.urlInstance(value), 'URL', value),
|
|
715
|
-
urlString: (value: unknown): asserts value is string =>
|
|
716
|
-
assertType(is.urlString(value), AssertionTypeDescription.urlString, value),
|
|
717
|
-
truthy: (value: unknown): asserts value is unknown =>
|
|
718
|
-
assertType(is.truthy(value), AssertionTypeDescription.truthy, value),
|
|
719
|
-
falsy: (value: unknown): asserts value is unknown =>
|
|
720
|
-
assertType(is.falsy(value), AssertionTypeDescription.falsy, value),
|
|
721
|
-
nan: (value: unknown): asserts value is unknown =>
|
|
722
|
-
assertType(is.nan(value), AssertionTypeDescription.nan, value),
|
|
723
|
-
primitive: (value: unknown): asserts value is Primitive =>
|
|
724
|
-
assertType(is.primitive(value), AssertionTypeDescription.primitive, value),
|
|
725
|
-
integer: (value: unknown): asserts value is number =>
|
|
726
|
-
assertType(is.integer(value), AssertionTypeDescription.integer, value),
|
|
727
|
-
safeInteger: (value: unknown): asserts value is number =>
|
|
728
|
-
assertType(is.safeInteger(value), AssertionTypeDescription.safeInteger, value),
|
|
729
|
-
plainObject: <Value = unknown>(value: unknown): asserts value is Record<PropertyKey, Value> =>
|
|
730
|
-
assertType(is.plainObject(value), AssertionTypeDescription.plainObject, value),
|
|
731
|
-
typedArray: (value: unknown): asserts value is TypedArray =>
|
|
732
|
-
assertType(is.typedArray(value), AssertionTypeDescription.typedArray, value),
|
|
733
|
-
arrayLike: <T = unknown>(value: unknown): asserts value is ArrayLike<T> =>
|
|
734
|
-
assertType(is.arrayLike(value), AssertionTypeDescription.arrayLike, value),
|
|
735
|
-
domElement: (value: unknown): asserts value is HTMLElement =>
|
|
736
|
-
assertType(is.domElement(value), AssertionTypeDescription.domElement, value),
|
|
737
|
-
observable: (value: unknown): asserts value is ObservableLike =>
|
|
738
|
-
assertType(is.observable(value), 'Observable', value),
|
|
739
|
-
nodeStream: (value: unknown): asserts value is NodeStream =>
|
|
740
|
-
assertType(is.nodeStream(value), AssertionTypeDescription.nodeStream, value),
|
|
741
|
-
infinite: (value: unknown): asserts value is number =>
|
|
742
|
-
assertType(is.infinite(value), AssertionTypeDescription.infinite, value),
|
|
743
|
-
emptyArray: (value: unknown): asserts value is never[] =>
|
|
744
|
-
assertType(is.emptyArray(value), AssertionTypeDescription.emptyArray, value),
|
|
745
|
-
nonEmptyArray: (value: unknown): asserts value is unknown[] =>
|
|
746
|
-
assertType(is.nonEmptyArray(value), AssertionTypeDescription.nonEmptyArray, value),
|
|
747
|
-
emptyString: (value: unknown): asserts value is '' =>
|
|
748
|
-
assertType(is.emptyString(value), AssertionTypeDescription.emptyString, value),
|
|
749
|
-
nonEmptyString: (value: unknown): asserts value is string =>
|
|
750
|
-
assertType(is.nonEmptyString(value), AssertionTypeDescription.nonEmptyString, value),
|
|
751
|
-
emptyStringOrWhitespace: (value: unknown): asserts value is string =>
|
|
752
|
-
assertType(
|
|
753
|
-
is.emptyStringOrWhitespace(value),
|
|
754
|
-
AssertionTypeDescription.emptyStringOrWhitespace,
|
|
755
|
-
value,
|
|
756
|
-
),
|
|
757
|
-
emptyObject: <Key extends keyof any = string>(
|
|
758
|
-
value: unknown,
|
|
759
|
-
): asserts value is Record<Key, never> =>
|
|
760
|
-
assertType(is.emptyObject(value), AssertionTypeDescription.emptyObject, value),
|
|
761
|
-
nonEmptyObject: <Key extends keyof any = string, Value = unknown>(
|
|
762
|
-
value: unknown,
|
|
763
|
-
): asserts value is Record<Key, Value> =>
|
|
764
|
-
assertType(is.nonEmptyObject(value), AssertionTypeDescription.nonEmptyObject, value),
|
|
765
|
-
emptySet: (value: unknown): asserts value is Set<never> =>
|
|
766
|
-
assertType(is.emptySet(value), AssertionTypeDescription.emptySet, value),
|
|
767
|
-
nonEmptySet: <T = unknown>(value: unknown): asserts value is Set<T> =>
|
|
768
|
-
assertType(is.nonEmptySet(value), AssertionTypeDescription.nonEmptySet, value),
|
|
769
|
-
emptyMap: (value: unknown): asserts value is Map<never, never> =>
|
|
770
|
-
assertType(is.emptyMap(value), AssertionTypeDescription.emptyMap, value),
|
|
771
|
-
nonEmptyMap: <Key = unknown, Value = unknown>(value: unknown): asserts value is Map<Key, Value> =>
|
|
772
|
-
assertType(is.nonEmptyMap(value), AssertionTypeDescription.nonEmptyMap, value),
|
|
773
|
-
propertyKey: (value: unknown): asserts value is number =>
|
|
774
|
-
assertType(is.propertyKey(value), 'PropertyKey', value),
|
|
775
|
-
formData: (value: unknown): asserts value is FormData =>
|
|
776
|
-
assertType(is.formData(value), 'FormData', value),
|
|
777
|
-
urlSearchParams: (value: unknown): asserts value is URLSearchParams =>
|
|
778
|
-
assertType(is.urlSearchParams(value), 'URLSearchParams', value),
|
|
779
|
-
|
|
780
|
-
// Numbers.
|
|
781
|
-
evenInteger: (value: number): asserts value is number =>
|
|
782
|
-
assertType(is.evenInteger(value), AssertionTypeDescription.evenInteger, value),
|
|
783
|
-
oddInteger: (value: number): asserts value is number =>
|
|
784
|
-
assertType(is.oddInteger(value), AssertionTypeDescription.oddInteger, value),
|
|
785
|
-
|
|
786
|
-
// Two arguments.
|
|
787
|
-
directInstanceOf: <T>(instance: unknown, class_: Class<T>): asserts instance is T =>
|
|
788
|
-
assertType(
|
|
789
|
-
is.directInstanceOf(instance, class_),
|
|
790
|
-
AssertionTypeDescription.directInstanceOf,
|
|
791
|
-
instance,
|
|
792
|
-
),
|
|
793
|
-
inRange: (value: number, range: number | number[]): asserts value is number =>
|
|
794
|
-
assertType(is.inRange(value, range), AssertionTypeDescription.inRange, value),
|
|
795
|
-
|
|
796
|
-
// Variadic functions.
|
|
797
|
-
any: (predicate: Predicate | Predicate[], ...values: unknown[]): void | never => {
|
|
798
|
-
return assertType(is.any(predicate, ...values), AssertionTypeDescription.any, values, {
|
|
799
|
-
multipleValues: true,
|
|
800
|
-
})
|
|
801
|
-
},
|
|
802
|
-
all: (predicate: Predicate, ...values: unknown[]): void | never =>
|
|
803
|
-
assertType(is.all(predicate, ...values), AssertionTypeDescription.all, values, {
|
|
804
|
-
multipleValues: true,
|
|
805
|
-
}),
|
|
806
|
-
}
|
|
807
|
-
|
|
808
|
-
// Some few keywords are reserved, but we'll populate them for Node.js users
|
|
809
|
-
// See https://github.com/Microsoft/TypeScript/issues/2536
|
|
810
|
-
Object.defineProperties(is, {
|
|
811
|
-
class: {
|
|
812
|
-
value: is.class_,
|
|
813
|
-
},
|
|
814
|
-
function: {
|
|
815
|
-
value: is.function_,
|
|
816
|
-
},
|
|
817
|
-
null: {
|
|
818
|
-
value: is.null_,
|
|
819
|
-
},
|
|
820
|
-
})
|
|
821
|
-
Object.defineProperties(assert, {
|
|
822
|
-
class: {
|
|
823
|
-
value: assert.class_,
|
|
824
|
-
},
|
|
825
|
-
function: {
|
|
826
|
-
value: assert.function_,
|
|
827
|
-
},
|
|
828
|
-
null: {
|
|
829
|
-
value: assert.null_,
|
|
830
|
-
},
|
|
831
|
-
})
|
|
832
|
-
|
|
833
|
-
// export {Class, TypedArray, ObservableLike, Primitive} from './types';
|