UNPKG

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