UNPKG

14.8 kBTypeScriptView Raw
1/// <reference types="node" resolution-mode="require"/>
2/// <reference types="node" resolution-mode="require"/>
3/// <reference types="node" resolution-mode="require"/>
4import type { Buffer } from 'node:buffer';
5import type { Class, Falsy, TypedArray, ObservableLike, Primitive, WeakRef } from './types.js';
6declare const objectTypeNames: readonly ["Function", "Generator", "AsyncGenerator", "GeneratorFunction", "AsyncGeneratorFunction", "AsyncFunction", "Observable", "Array", "Buffer", "Blob", "Object", "RegExp", "Date", "Error", "Map", "Set", "WeakMap", "WeakSet", "WeakRef", "ArrayBuffer", "SharedArrayBuffer", "DataView", "Promise", "URL", "FormData", "URLSearchParams", "HTMLElement", "NaN", "Int8Array", "Uint8Array", "Uint8ClampedArray", "Int16Array", "Uint16Array", "Int32Array", "Uint32Array", "Float32Array", "Float64Array", "BigInt64Array", "BigUint64Array"];
7declare type ObjectTypeName = typeof objectTypeNames[number];
8declare const primitiveTypeNames: readonly ["null", "undefined", "string", "number", "bigint", "boolean", "symbol"];
9declare type PrimitiveTypeName = typeof primitiveTypeNames[number];
10export declare type TypeName = ObjectTypeName | PrimitiveTypeName;
11declare function is(value: unknown): TypeName;
12declare namespace is {
13 var undefined: (value: unknown) => value is undefined;
14 var string: (value: unknown) => value is string;
15 var number: (value: unknown) => value is number;
16 var bigint: (value: unknown) => value is bigint;
17 var function_: (value: unknown) => value is Function;
18 var null_: (value: unknown) => value is null;
19 var class_: (value: unknown) => value is Class<unknown, any[]>;
20 var boolean: (value: unknown) => value is boolean;
21 var symbol: (value: unknown) => value is symbol;
22 var numericString: (value: unknown) => value is string;
23 var array: <T = unknown>(value: unknown, assertion?: ((value: T) => value is T) | undefined) => value is T[];
24 var buffer: (value: unknown) => value is Buffer;
25 var blob: (value: unknown) => value is Blob;
26 var nullOrUndefined: (value: unknown) => value is null | undefined;
27 var object: (value: unknown) => value is object;
28 var iterable: <T = unknown>(value: unknown) => value is Iterable<T>;
29 var asyncIterable: <T = unknown>(value: unknown) => value is AsyncIterable<T>;
30 var generator: (value: unknown) => value is Generator<unknown, any, unknown>;
31 var asyncGenerator: (value: unknown) => value is AsyncGenerator<unknown, any, unknown>;
32 var nativePromise: <T = unknown>(value: unknown) => value is Promise<T>;
33 var promise: <T = unknown>(value: unknown) => value is Promise<T>;
34 var generatorFunction: (value: unknown) => value is GeneratorFunction;
35 var asyncGeneratorFunction: (value: unknown) => value is (...args: any[]) => Promise<unknown>;
36 var asyncFunction: <T = unknown>(value: unknown) => value is (...args: any[]) => Promise<T>;
37 var boundFunction: (value: unknown) => value is Function;
38 var regExp: (value: unknown) => value is RegExp;
39 var date: (value: unknown) => value is Date;
40 var error: (value: unknown) => value is Error;
41 var map: <Key = unknown, Value = unknown>(value: unknown) => value is Map<Key, Value>;
42 var set: <T = unknown>(value: unknown) => value is Set<T>;
43 var weakMap: <Key extends object = object, Value = unknown>(value: unknown) => value is WeakMap<Key, Value>;
44 var weakSet: (value: unknown) => value is WeakSet<object>;
45 var weakRef: (value: unknown) => value is WeakRef<object>;
46 var int8Array: (value: unknown) => value is Int8Array;
47 var uint8Array: (value: unknown) => value is Uint8Array;
48 var uint8ClampedArray: (value: unknown) => value is Uint8ClampedArray;
49 var int16Array: (value: unknown) => value is Int16Array;
50 var uint16Array: (value: unknown) => value is Uint16Array;
51 var int32Array: (value: unknown) => value is Int32Array;
52 var uint32Array: (value: unknown) => value is Uint32Array;
53 var float32Array: (value: unknown) => value is Float32Array;
54 var float64Array: (value: unknown) => value is Float64Array;
55 var bigInt64Array: (value: unknown) => value is BigInt64Array;
56 var bigUint64Array: (value: unknown) => value is BigUint64Array;
57 var arrayBuffer: (value: unknown) => value is ArrayBuffer;
58 var sharedArrayBuffer: (value: unknown) => value is SharedArrayBuffer;
59 var dataView: (value: unknown) => value is DataView;
60 var enumCase: <T = unknown>(value: unknown, targetEnum: T) => boolean;
61 var directInstanceOf: <T>(instance: unknown, class_: Class<T, any[]>) => instance is T;
62 var urlInstance: (value: unknown) => value is URL;
63 var urlString: (value: unknown) => value is string;
64 var truthy: <T>(value: Falsy | T) => value is T;
65 var falsy: <T>(value: Falsy | T) => value is Falsy;
66 var nan: (value: unknown) => boolean;
67 var primitive: (value: unknown) => value is Primitive;
68 var integer: (value: unknown) => value is number;
69 var safeInteger: (value: unknown) => value is number;
70 var plainObject: <Value = unknown>(value: unknown) => value is Record<PropertyKey, Value>;
71 var typedArray: (value: unknown) => value is TypedArray;
72 var arrayLike: <T = unknown>(value: unknown) => value is ArrayLike<T>;
73 var inRange: (value: number, range: number | number[]) => value is number;
74 var domElement: (value: unknown) => value is HTMLElement;
75 var observable: (value: unknown) => value is ObservableLike;
76 var nodeStream: (value: unknown) => value is NodeStream;
77 var infinite: (value: unknown) => value is number;
78 var evenInteger: (value: number) => value is number;
79 var oddInteger: (value: number) => value is number;
80 var emptyArray: (value: unknown) => value is never[];
81 var nonEmptyArray: (value: unknown) => value is [unknown, ...unknown[]];
82 var emptyString: (value: unknown) => value is "";
83 var emptyStringOrWhitespace: (value: unknown) => value is string;
84 var nonEmptyString: (value: unknown) => value is string;
85 var nonEmptyStringAndNotWhitespace: (value: unknown) => value is string;
86 var emptyObject: <Key extends string | number | symbol = string>(value: unknown) => value is Record<Key, never>;
87 var nonEmptyObject: <Key extends string | number | symbol = string, Value = unknown>(value: unknown) => value is Record<Key, Value>;
88 var emptySet: (value: unknown) => value is Set<never>;
89 var nonEmptySet: <T = unknown>(value: unknown) => value is Set<T>;
90 var emptyMap: (value: unknown) => value is Map<never, never>;
91 var nonEmptyMap: <Key = unknown, Value = unknown>(value: unknown) => value is Map<Key, Value>;
92 var propertyKey: (value: unknown) => value is PropertyKey;
93 var formData: (value: unknown) => value is FormData;
94 var urlSearchParams: (value: unknown) => value is URLSearchParams;
95 var any: (predicate: Predicate | Predicate[], ...values: unknown[]) => boolean;
96 var all: (predicate: Predicate, ...values: unknown[]) => boolean;
97}
98export interface ArrayLike<T> {
99 readonly [index: number]: T;
100 readonly length: number;
101}
102export interface NodeStream extends NodeJS.EventEmitter {
103 pipe<T extends NodeJS.WritableStream>(destination: T, options?: {
104 end?: boolean;
105 }): T;
106}
107export declare type Predicate = (value: unknown) => boolean;
108export declare const enum AssertionTypeDescription {
109 class_ = "Class",
110 numericString = "string with a number",
111 nullOrUndefined = "null or undefined",
112 iterable = "Iterable",
113 asyncIterable = "AsyncIterable",
114 nativePromise = "native Promise",
115 urlString = "string with a URL",
116 truthy = "truthy",
117 falsy = "falsy",
118 nan = "NaN",
119 primitive = "primitive",
120 integer = "integer",
121 safeInteger = "integer",
122 plainObject = "plain object",
123 arrayLike = "array-like",
124 typedArray = "TypedArray",
125 domElement = "HTMLElement",
126 nodeStream = "Node.js Stream",
127 infinite = "infinite number",
128 emptyArray = "empty array",
129 nonEmptyArray = "non-empty array",
130 emptyString = "empty string",
131 emptyStringOrWhitespace = "empty string or whitespace",
132 nonEmptyString = "non-empty string",
133 nonEmptyStringAndNotWhitespace = "non-empty string and not whitespace",
134 emptyObject = "empty object",
135 nonEmptyObject = "non-empty object",
136 emptySet = "empty set",
137 nonEmptySet = "non-empty set",
138 emptyMap = "empty map",
139 nonEmptyMap = "non-empty map",
140 evenInteger = "even integer",
141 oddInteger = "odd integer",
142 directInstanceOf = "T",
143 inRange = "in range",
144 any = "predicate returns truthy for any value",
145 all = "predicate returns truthy for all values"
146}
147interface Assert {
148 undefined: (value: unknown) => asserts value is undefined;
149 string: (value: unknown) => asserts value is string;
150 number: (value: unknown) => asserts value is number;
151 bigint: (value: unknown) => asserts value is bigint;
152 function_: (value: unknown) => asserts value is Function;
153 null_: (value: unknown) => asserts value is null;
154 class_: (value: unknown) => asserts value is Class;
155 boolean: (value: unknown) => asserts value is boolean;
156 symbol: (value: unknown) => asserts value is symbol;
157 numericString: (value: unknown) => asserts value is string;
158 array: <T = unknown>(value: unknown, assertion?: (element: unknown) => asserts element is T) => asserts value is T[];
159 buffer: (value: unknown) => asserts value is Buffer;
160 blob: (value: unknown) => asserts value is Blob;
161 nullOrUndefined: (value: unknown) => asserts value is null | undefined;
162 object: <Key extends keyof any = string, Value = unknown>(value: unknown) => asserts value is Record<Key, Value>;
163 iterable: <T = unknown>(value: unknown) => asserts value is Iterable<T>;
164 asyncIterable: <T = unknown>(value: unknown) => asserts value is AsyncIterable<T>;
165 generator: (value: unknown) => asserts value is Generator;
166 asyncGenerator: (value: unknown) => asserts value is AsyncGenerator;
167 nativePromise: <T = unknown>(value: unknown) => asserts value is Promise<T>;
168 promise: <T = unknown>(value: unknown) => asserts value is Promise<T>;
169 generatorFunction: (value: unknown) => asserts value is GeneratorFunction;
170 asyncGeneratorFunction: (value: unknown) => asserts value is AsyncGeneratorFunction;
171 asyncFunction: (value: unknown) => asserts value is Function;
172 boundFunction: (value: unknown) => asserts value is Function;
173 regExp: (value: unknown) => asserts value is RegExp;
174 date: (value: unknown) => asserts value is Date;
175 error: (value: unknown) => asserts value is Error;
176 map: <Key = unknown, Value = unknown>(value: unknown) => asserts value is Map<Key, Value>;
177 set: <T = unknown>(value: unknown) => asserts value is Set<T>;
178 weakMap: <Key extends object = object, Value = unknown>(value: unknown) => asserts value is WeakMap<Key, Value>;
179 weakSet: <T extends object = object>(value: unknown) => asserts value is WeakSet<T>;
180 weakRef: <T extends object = object>(value: unknown) => asserts value is WeakRef<T>;
181 int8Array: (value: unknown) => asserts value is Int8Array;
182 uint8Array: (value: unknown) => asserts value is Uint8Array;
183 uint8ClampedArray: (value: unknown) => asserts value is Uint8ClampedArray;
184 int16Array: (value: unknown) => asserts value is Int16Array;
185 uint16Array: (value: unknown) => asserts value is Uint16Array;
186 int32Array: (value: unknown) => asserts value is Int32Array;
187 uint32Array: (value: unknown) => asserts value is Uint32Array;
188 float32Array: (value: unknown) => asserts value is Float32Array;
189 float64Array: (value: unknown) => asserts value is Float64Array;
190 bigInt64Array: (value: unknown) => asserts value is BigInt64Array;
191 bigUint64Array: (value: unknown) => asserts value is BigUint64Array;
192 arrayBuffer: (value: unknown) => asserts value is ArrayBuffer;
193 sharedArrayBuffer: (value: unknown) => asserts value is SharedArrayBuffer;
194 dataView: (value: unknown) => asserts value is DataView;
195 enumCase: <T = unknown>(value: unknown, targetEnum: T) => asserts value is T[keyof T];
196 urlInstance: (value: unknown) => asserts value is URL;
197 urlString: (value: unknown) => asserts value is string;
198 truthy: (value: unknown) => asserts value is unknown;
199 falsy: (value: unknown) => asserts value is unknown;
200 nan: (value: unknown) => asserts value is unknown;
201 primitive: (value: unknown) => asserts value is Primitive;
202 integer: (value: unknown) => asserts value is number;
203 safeInteger: (value: unknown) => asserts value is number;
204 plainObject: <Value = unknown>(value: unknown) => asserts value is Record<PropertyKey, Value>;
205 typedArray: (value: unknown) => asserts value is TypedArray;
206 arrayLike: <T = unknown>(value: unknown) => asserts value is ArrayLike<T>;
207 domElement: (value: unknown) => asserts value is HTMLElement;
208 observable: (value: unknown) => asserts value is ObservableLike;
209 nodeStream: (value: unknown) => asserts value is NodeStream;
210 infinite: (value: unknown) => asserts value is number;
211 emptyArray: (value: unknown) => asserts value is never[];
212 nonEmptyArray: (value: unknown) => asserts value is [unknown, ...unknown[]];
213 emptyString: (value: unknown) => asserts value is '';
214 emptyStringOrWhitespace: (value: unknown) => asserts value is string;
215 nonEmptyString: (value: unknown) => asserts value is string;
216 nonEmptyStringAndNotWhitespace: (value: unknown) => asserts value is string;
217 emptyObject: <Key extends keyof any = string>(value: unknown) => asserts value is Record<Key, never>;
218 nonEmptyObject: <Key extends keyof any = string, Value = unknown>(value: unknown) => asserts value is Record<Key, Value>;
219 emptySet: (value: unknown) => asserts value is Set<never>;
220 nonEmptySet: <T = unknown>(value: unknown) => asserts value is Set<T>;
221 emptyMap: (value: unknown) => asserts value is Map<never, never>;
222 nonEmptyMap: <Key = unknown, Value = unknown>(value: unknown) => asserts value is Map<Key, Value>;
223 propertyKey: (value: unknown) => asserts value is PropertyKey;
224 formData: (value: unknown) => asserts value is FormData;
225 urlSearchParams: (value: unknown) => asserts value is URLSearchParams;
226 evenInteger: (value: number) => asserts value is number;
227 oddInteger: (value: number) => asserts value is number;
228 directInstanceOf: <T>(instance: unknown, class_: Class<T>) => asserts instance is T;
229 inRange: (value: number, range: number | number[]) => asserts value is number;
230 any: (predicate: Predicate | Predicate[], ...values: unknown[]) => void | never;
231 all: (predicate: Predicate, ...values: unknown[]) => void | never;
232}
233export declare const assert: Assert;
234export default is;
235export type { Class, TypedArray, ObservableLike, Primitive } from './types.js';