UNPKG

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