@xylabs/typeof 4.9.2 → 4.9.4
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/neutral/index.mjs +48 -0
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/types/is.d.ts +36 -35
- package/dist/types/is.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/is.ts +83 -41
package/dist/neutral/index.mjs
CHANGED
|
@@ -30,9 +30,15 @@ var ifTypeOf = (typeName, value, trueFunc, isFunc) => {
|
|
|
30
30
|
function isUndefined(value) {
|
|
31
31
|
return value === void 0;
|
|
32
32
|
}
|
|
33
|
+
function isDefined(value) {
|
|
34
|
+
return !isUndefined(value);
|
|
35
|
+
}
|
|
33
36
|
function isNull(value) {
|
|
34
37
|
return value === null;
|
|
35
38
|
}
|
|
39
|
+
function isDefinedNotNull(value) {
|
|
40
|
+
return !isUndefined(value) && !isNull(value);
|
|
41
|
+
}
|
|
36
42
|
function isUndefinedOrNull(value) {
|
|
37
43
|
return isUndefined(value) || isNull(value);
|
|
38
44
|
}
|
|
@@ -96,9 +102,39 @@ function isError(value) {
|
|
|
96
102
|
function isPromise(value) {
|
|
97
103
|
return value instanceof Promise;
|
|
98
104
|
}
|
|
105
|
+
function isPromiseLike(value) {
|
|
106
|
+
return typeof value === "object" && value !== null && typeof value.then === "function";
|
|
107
|
+
}
|
|
99
108
|
function isMap(value) {
|
|
100
109
|
return value instanceof Map;
|
|
101
110
|
}
|
|
111
|
+
function isPlainObject(value) {
|
|
112
|
+
return isObject(value) && value.constructor === Object;
|
|
113
|
+
}
|
|
114
|
+
function isArrayBufferView(value) {
|
|
115
|
+
return ArrayBuffer.isView(value);
|
|
116
|
+
}
|
|
117
|
+
function isSet(value) {
|
|
118
|
+
return value instanceof Set;
|
|
119
|
+
}
|
|
120
|
+
function isWeakMap(value) {
|
|
121
|
+
return value instanceof WeakMap;
|
|
122
|
+
}
|
|
123
|
+
function isWeakSet(value) {
|
|
124
|
+
return value instanceof WeakSet;
|
|
125
|
+
}
|
|
126
|
+
function isArrayBuffer(value) {
|
|
127
|
+
return value instanceof ArrayBuffer;
|
|
128
|
+
}
|
|
129
|
+
function isDataView(value) {
|
|
130
|
+
return value instanceof DataView;
|
|
131
|
+
}
|
|
132
|
+
function isBlob(value) {
|
|
133
|
+
return typeof Blob !== "undefined" && value instanceof Blob;
|
|
134
|
+
}
|
|
135
|
+
function isFile(value) {
|
|
136
|
+
return typeof File !== "undefined" && value instanceof File;
|
|
137
|
+
}
|
|
102
138
|
|
|
103
139
|
// src/isType.ts
|
|
104
140
|
var isType = (value, expectedType) => {
|
|
@@ -180,24 +216,34 @@ export {
|
|
|
180
216
|
ifDefined,
|
|
181
217
|
ifTypeOf,
|
|
182
218
|
isArray,
|
|
219
|
+
isArrayBuffer,
|
|
220
|
+
isArrayBufferView,
|
|
183
221
|
isBigInt,
|
|
222
|
+
isBlob,
|
|
184
223
|
isBoolean,
|
|
224
|
+
isDataView,
|
|
185
225
|
isDate,
|
|
186
226
|
isDateString,
|
|
227
|
+
isDefined,
|
|
228
|
+
isDefinedNotNull,
|
|
187
229
|
isEmpty,
|
|
188
230
|
isEmptyArray,
|
|
189
231
|
isEmptyObject,
|
|
190
232
|
isEmptyString,
|
|
191
233
|
isError,
|
|
192
234
|
isFalsy,
|
|
235
|
+
isFile,
|
|
193
236
|
isFunction,
|
|
194
237
|
isMap,
|
|
195
238
|
isNull,
|
|
196
239
|
isNumber,
|
|
197
240
|
isObject,
|
|
241
|
+
isPlainObject,
|
|
198
242
|
isPopulatedArray,
|
|
199
243
|
isPromise,
|
|
244
|
+
isPromiseLike,
|
|
200
245
|
isRegExp,
|
|
246
|
+
isSet,
|
|
201
247
|
isString,
|
|
202
248
|
isSymbol,
|
|
203
249
|
isTruthy,
|
|
@@ -209,6 +255,8 @@ export {
|
|
|
209
255
|
isUndefined,
|
|
210
256
|
isUndefinedOrNull,
|
|
211
257
|
isValidTypedFieldPair,
|
|
258
|
+
isWeakMap,
|
|
259
|
+
isWeakSet,
|
|
212
260
|
typeOf,
|
|
213
261
|
validateType
|
|
214
262
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/typeOf.ts","../../src/ifDefined.ts","../../src/ifTypeOf.ts","../../src/is.ts","../../src/isType.ts","../../src/Typed.ts","../../src/validateType.ts"],"sourcesContent":["import type { TypeOfTypes } from './TypeOfTypes.ts'\n\nexport const typeOf = <T>(item: T): TypeOfTypes => {\n return Array.isArray(item) ? 'array' : typeof item\n}\n","import { typeOf } from './typeOf.ts'\n\nexport const ifDefined = <T>(value: T, func: (value: T) => void) => {\n switch (typeOf(value)) {\n case 'undefined':\n case 'null': {\n break\n }\n default: {\n func(value)\n return value\n }\n }\n}\n","import { typeOf } from './typeOf.ts'\nimport type { TypeOfTypes } from './TypeOfTypes.ts'\n\nexport const ifTypeOf = <T, R>(typeName: TypeOfTypes, value: unknown, trueFunc: (value: T) => R, isFunc?: (value: T) => boolean) => {\n switch (typeOf(value)) {\n case typeName: {\n return !isFunc || isFunc(value as T) ? trueFunc(value as T) : undefined\n }\n }\n}\n","export function isUndefined(value: unknown): value is undefined {\n return value === undefined\n}\n\nexport function isNull(value: unknown): value is null {\n return value === null\n}\n\nexport function isUndefinedOrNull(value: unknown): value is undefined | null {\n return isUndefined(value) || isNull(value)\n}\n\nexport function isBigInt(value: unknown): value is bigint {\n return typeof value === 'bigint'\n}\n\nexport function isString(value: unknown): value is string {\n return typeof value === 'string'\n}\n\nexport function isNumber(value: unknown): value is number {\n return typeof value === 'number'\n}\n\nexport function isObject(value: unknown): value is object\nexport function isObject<T extends object>(value: unknown): value is T\nexport function isObject<T extends object>(value: T): value is T\nexport function isObject(value: unknown): value is object {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n\nexport function isArray(value: unknown): value is []\nexport function isArray<T extends []>(value: unknown): value is T\nexport function isArray<T extends []>(value: T): value is T\nexport function isArray(value: unknown): value is [] {\n return Array.isArray(value)\n}\n\nexport function isFunction(value: unknown): value is () => void {\n return typeof value === 'function'\n}\n\nexport function isSymbol(value: unknown): value is symbol {\n return typeof value === 'symbol'\n}\n\nexport function isEmptyObject(value: unknown): value is {} {\n return isObject(value) && Object.keys(value).length === 0\n}\n\nexport function isEmptyString(value: unknown): value is '' {\n return isString(value) && value.length === 0\n}\n\nexport function isEmptyArray(value: unknown): value is []\nexport function isEmptyArray<T extends []>(value: unknown): value is T\nexport function isEmptyArray<T extends []>(value: T): value is T\nexport function isEmptyArray(value: unknown): value is [] {\n return isArray(value) && value.length === 0\n}\n\nexport function isPopulatedArray(value: unknown): value is []\nexport function isPopulatedArray<T extends []>(value: unknown): value is T\nexport function isPopulatedArray<T extends []>(value: T): value is T\nexport function isPopulatedArray(value: unknown): value is [] {\n return isArray(value) && value.length > 0\n}\n\nexport function isEmpty(value: unknown): value is (undefined | null | '' | [] | {}) {\n return isEmptyString(value) || isEmptyArray(value) || isEmptyObject(value)\n}\n\nexport function isFalsy(value: unknown): value is false {\n return !value\n}\n\nexport function isTruthy(value: unknown): value is true {\n return !!value\n}\n\nexport function isBoolean(value: unknown): value is boolean {\n return typeof value === 'boolean'\n}\n\nexport function isDateString(value: unknown): value is string {\n return isString(value) && !Number.isNaN(Date.parse(value))\n}\n\nexport function isDate(value: unknown): value is Date {\n return value instanceof Date\n}\n\nexport function isRegExp(value: unknown): value is RegExp {\n return value instanceof RegExp\n}\n\nexport function isError(value: unknown): value is Error {\n return value instanceof Error\n}\n\nexport function isPromise(value: unknown): value is Promise<unknown>\nexport function isPromise<T extends Promise<unknown>>(value: unknown): value is T\nexport function isPromise<T extends Promise<unknown>>(value: T): value is T\nexport function isPromise(value: unknown): value is Promise<unknown> {\n return value instanceof Promise\n}\n\nexport function isMap(value: unknown): value is Map<unknown, unknown>\nexport function isMap<K, V>(value: unknown): value is Map<K, V>\nexport function isMap<K, V>(value: Map<K, V>): value is Map<K, V>\nexport function isMap(value: unknown): value is Map<unknown, unknown> {\n return value instanceof Map\n}\n","import type { FieldType } from './ObjectTypeShape.ts'\n\nexport const isType = (value: unknown, expectedType: FieldType) => {\n const typeofValue = typeof value\n switch (expectedType) {\n case 'array': {\n return Array.isArray(value)\n }\n case 'null': {\n return value === null\n }\n case 'undefined': {\n return value === undefined\n }\n case 'object': {\n // nulls resolve to objects, so exclude them\n if (value === null) {\n return false\n }\n // arrays resolve to objects, so exclude them\n return typeofValue === 'object' && !Array.isArray(value)\n }\n default: {\n return typeofValue === expectedType\n }\n }\n}\n","import { isType } from './isType.ts'\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\nexport type TypedValue = bigint | string | number | boolean | null | TypedObject | TypedArray | Function | symbol | undefined\nexport type TypedKey<T extends string | void = void> = T extends string ? T : string | number | symbol\nexport type TypedObject = { [key: TypedKey]: TypedValue } | object\nexport type TypedArray = TypedValue[]\n\nexport const isTypedKey = (value: unknown): value is TypedKey => {\n switch (typeof value) {\n case 'string':\n case 'bigint':\n case 'number':\n case 'symbol': {\n return true\n }\n default: {\n return false\n }\n }\n}\n\nexport const isTypedValue = (value: unknown): value is TypedValue => {\n switch (typeof value) {\n case 'string':\n case 'number':\n case 'boolean': {\n return true\n }\n default: {\n return value === null || isTypedObject(value) || isTypedArray(value)\n }\n }\n}\n\nexport const isTypedArray = (value: unknown): value is TypedArray => {\n return Array.isArray(value) && !value.some(item => !isTypedValue(item))\n}\n\nexport const isValidTypedFieldPair = (pair: [key: unknown, value: unknown]): pair is [key: TypedKey, value: TypedValue] => {\n const [key, value] = pair\n return isTypedKey(key) && isTypedValue(value)\n}\n\nexport const isTypedObject = (value: unknown): value is TypedObject => {\n return (\n isType(value, 'object')\n // check if all keys are strings\n && !Object.entries(value as object).some(item => !isValidTypedFieldPair(item))\n )\n}\n\n// Object Type Test\n/*\ninterface TestObject {\n value: number\n}\n\nconst x: TestObject = { value: 1 }\n\nconst f = (p: TypedValue): void => {\n console.log(p)\n}\n\nf(x)\n*/\n","import { typeOf } from './typeOf.ts'\nimport type { TypeOfTypes } from './TypeOfTypes.ts'\n\nexport const validateType = <T>(typeName: TypeOfTypes, value: T, optional = false): [T | undefined, Error[]] => {\n switch (typeOf(value)) {\n case typeName: {\n return [value, []]\n }\n default: {\n if (optional && typeOf(value) === 'undefined') {\n return [value, []]\n }\n return [undefined, [new Error(`value type is not '${typeName}:${typeof value}'`)]]\n }\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/typeOf.ts","../../src/ifDefined.ts","../../src/ifTypeOf.ts","../../src/is.ts","../../src/isType.ts","../../src/Typed.ts","../../src/validateType.ts"],"sourcesContent":["import type { TypeOfTypes } from './TypeOfTypes.ts'\n\nexport const typeOf = <T>(item: T): TypeOfTypes => {\n return Array.isArray(item) ? 'array' : typeof item\n}\n","import { typeOf } from './typeOf.ts'\n\nexport const ifDefined = <T>(value: T, func: (value: T) => void) => {\n switch (typeOf(value)) {\n case 'undefined':\n case 'null': {\n break\n }\n default: {\n func(value)\n return value\n }\n }\n}\n","import { typeOf } from './typeOf.ts'\nimport type { TypeOfTypes } from './TypeOfTypes.ts'\n\nexport const ifTypeOf = <T, R>(typeName: TypeOfTypes, value: unknown, trueFunc: (value: T) => R, isFunc?: (value: T) => boolean) => {\n switch (typeOf(value)) {\n case typeName: {\n return !isFunc || isFunc(value as T) ? trueFunc(value as T) : undefined\n }\n }\n}\n","export type AnyFunction = (...args: unknown[]) => unknown\n\nexport function isUndefined<T>(value: T): value is Extract<T, undefined> {\n return value === undefined\n}\n\nexport function isDefined<T>(value: T): value is Exclude<T, undefined> {\n return !isUndefined(value)\n}\n\nexport function isNull<T>(value: T): value is Extract<T, null> {\n return value === null\n}\n\nexport function isDefinedNotNull<T>(value: T): value is Exclude<T, undefined | null> {\n return !isUndefined(value) && !isNull(value)\n}\n\nexport function isUndefinedOrNull<T>(value: T): value is Extract<T, undefined | null> {\n return isUndefined(value) || isNull(value)\n}\n\nexport function isBigInt<T>(value: T): value is Extract<T, bigint> {\n return typeof value === 'bigint'\n}\n\nexport function isString<T>(value: T): value is Extract<T, string> {\n return typeof value === 'string'\n}\n\nexport function isNumber<T>(value: unknown): value is Extract<T, number> {\n return typeof value === 'number'\n}\n\nexport function isObject<T>(value: T): value is Extract<T, object> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n\nexport function isArray<T>(value: T): value is Extract<T, Array<unknown>> {\n return Array.isArray(value)\n}\n\nexport function isFunction<T>(value: T): value is Extract<T, AnyFunction> {\n return typeof value === 'function'\n}\n\nexport function isSymbol(value: unknown): value is symbol {\n return typeof value === 'symbol'\n}\n\nexport function isEmptyObject<T, K extends string | number | symbol>(value: T | Record<K, unknown>): value is Extract<T, Record<K, never>> {\n return isObject(value) && Object.keys(value).length === 0\n}\n\nexport function isEmptyString<T>(value: T): value is Extract<T, ''> {\n return isString(value) && value.length === 0\n}\n\nexport function isEmptyArray<T>(value: T): value is Extract<T, Array<unknown>> {\n return isArray(value) && value.length === 0\n}\n\nexport function isPopulatedArray<T>(value: T): value is Extract<T, Array<unknown>> {\n return isArray(value) && value.length > 0\n}\n\nexport function isEmpty<\n T,\n K extends string | number | symbol = keyof Extract<T, object>,\n>(\n value: T | Record<K, unknown> | Array<unknown>,\n): value is Extract<T, '' | Array<unknown> | Record<K, never>> {\n return isEmptyString(value) || isEmptyArray(value) || isEmptyObject(value)\n}\n\nexport function isFalsy<T>(value: T): value is Extract<T, false | 0 | '' | null | undefined> {\n return !value\n}\n\nexport function isTruthy<T>(value: unknown): value is Extract<T, true | number | string | object | symbol | AnyFunction | []> {\n return !!value\n}\n\nexport function isBoolean<T>(value: T): value is Extract<T, boolean> {\n return typeof value === 'boolean'\n}\n\nexport function isDateString<T>(value: T): value is Extract<T, string> {\n return isString(value) && !Number.isNaN(Date.parse(value))\n}\n\nexport function isDate<T>(value: T): value is Extract<T, Date> {\n return value instanceof Date\n}\n\nexport function isRegExp<T>(value: T): value is Extract<T, RegExp> {\n return value instanceof RegExp\n}\n\nexport function isError<T>(value: T): value is Extract<T, Error> {\n return value instanceof Error\n}\n\nexport function isPromise<T>(value: T): value is Extract<T, Promise<unknown>> {\n return value instanceof Promise\n}\n\nexport function isPromiseLike<T>(value: T): value is Extract<T, Promise<unknown>> {\n return (\n typeof value === 'object'\n && value !== null\n && typeof (value as Record<string, unknown>).then === 'function'\n )\n}\n\nexport function isMap<K, V>(value: unknown | Map<K, V>): value is Map<K, V> {\n return value instanceof Map\n}\n\n// excludes classes not a class\nexport function isPlainObject<T>(value: T): value is Extract<T, object> {\n return isObject(value) && value.constructor === Object\n}\n\nexport function isArrayBufferView<T>(value: T): value is Extract<T, ArrayBufferView> {\n return ArrayBuffer.isView(value)\n}\n\nexport function isSet<T>(value: unknown | Set<T>): value is Extract<T, Set<T>> {\n return value instanceof Set\n}\n\nexport function isWeakMap<K extends WeakKey, V>(value: unknown | WeakMap<K, V>): value is WeakMap<K, V> {\n return value instanceof WeakMap\n}\n\nexport function isWeakSet<K extends WeakKey>(value: unknown | WeakSet<K>): value is WeakSet<K> {\n return value instanceof WeakSet\n}\n\nexport function isArrayBuffer<T>(value: T): value is Extract<T, ArrayBuffer> {\n return value instanceof ArrayBuffer\n}\n\nexport function isDataView<T>(value: T): value is Extract<T, DataView> {\n return value instanceof DataView\n}\n\nexport function isBlob<T>(value: T): value is Extract<T, Blob> {\n return typeof Blob !== 'undefined' && value instanceof Blob\n}\n\nexport function isFile<T>(value: T): value is Extract<T, File> {\n return typeof File !== 'undefined' && value instanceof File\n}\n","import type { FieldType } from './ObjectTypeShape.ts'\n\nexport const isType = (value: unknown, expectedType: FieldType) => {\n const typeofValue = typeof value\n switch (expectedType) {\n case 'array': {\n return Array.isArray(value)\n }\n case 'null': {\n return value === null\n }\n case 'undefined': {\n return value === undefined\n }\n case 'object': {\n // nulls resolve to objects, so exclude them\n if (value === null) {\n return false\n }\n // arrays resolve to objects, so exclude them\n return typeofValue === 'object' && !Array.isArray(value)\n }\n default: {\n return typeofValue === expectedType\n }\n }\n}\n","import { isType } from './isType.ts'\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\nexport type TypedValue = bigint | string | number | boolean | null | TypedObject | TypedArray | Function | symbol | undefined\nexport type TypedKey<T extends string | void = void> = T extends string ? T : string | number | symbol\nexport type TypedObject = { [key: TypedKey]: TypedValue } | object\nexport type TypedArray = TypedValue[]\n\nexport const isTypedKey = (value: unknown): value is TypedKey => {\n switch (typeof value) {\n case 'string':\n case 'bigint':\n case 'number':\n case 'symbol': {\n return true\n }\n default: {\n return false\n }\n }\n}\n\nexport const isTypedValue = (value: unknown): value is TypedValue => {\n switch (typeof value) {\n case 'string':\n case 'number':\n case 'boolean': {\n return true\n }\n default: {\n return value === null || isTypedObject(value) || isTypedArray(value)\n }\n }\n}\n\nexport const isTypedArray = (value: unknown): value is TypedArray => {\n return Array.isArray(value) && !value.some(item => !isTypedValue(item))\n}\n\nexport const isValidTypedFieldPair = (pair: [key: unknown, value: unknown]): pair is [key: TypedKey, value: TypedValue] => {\n const [key, value] = pair\n return isTypedKey(key) && isTypedValue(value)\n}\n\nexport const isTypedObject = (value: unknown): value is TypedObject => {\n return (\n isType(value, 'object')\n // check if all keys are strings\n && !Object.entries(value as object).some(item => !isValidTypedFieldPair(item))\n )\n}\n\n// Object Type Test\n/*\ninterface TestObject {\n value: number\n}\n\nconst x: TestObject = { value: 1 }\n\nconst f = (p: TypedValue): void => {\n console.log(p)\n}\n\nf(x)\n*/\n","import { typeOf } from './typeOf.ts'\nimport type { TypeOfTypes } from './TypeOfTypes.ts'\n\nexport const validateType = <T>(typeName: TypeOfTypes, value: T, optional = false): [T | undefined, Error[]] => {\n switch (typeOf(value)) {\n case typeName: {\n return [value, []]\n }\n default: {\n if (optional && typeOf(value) === 'undefined') {\n return [value, []]\n }\n return [undefined, [new Error(`value type is not '${typeName}:${typeof value}'`)]]\n }\n }\n}\n"],"mappings":"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","names":[]}
|
package/dist/types/is.d.ts
CHANGED
|
@@ -1,37 +1,38 @@
|
|
|
1
|
-
export
|
|
2
|
-
export declare function
|
|
3
|
-
export declare function
|
|
4
|
-
export declare function
|
|
5
|
-
export declare function
|
|
6
|
-
export declare function
|
|
7
|
-
export declare function
|
|
8
|
-
export declare function
|
|
9
|
-
export declare function
|
|
10
|
-
export declare function
|
|
11
|
-
export declare function isArray<T
|
|
12
|
-
export declare function
|
|
13
|
-
export declare function isFunction(value: unknown): value is () => void;
|
|
1
|
+
export type AnyFunction = (...args: unknown[]) => unknown;
|
|
2
|
+
export declare function isUndefined<T>(value: T): value is Extract<T, undefined>;
|
|
3
|
+
export declare function isDefined<T>(value: T): value is Exclude<T, undefined>;
|
|
4
|
+
export declare function isNull<T>(value: T): value is Extract<T, null>;
|
|
5
|
+
export declare function isDefinedNotNull<T>(value: T): value is Exclude<T, undefined | null>;
|
|
6
|
+
export declare function isUndefinedOrNull<T>(value: T): value is Extract<T, undefined | null>;
|
|
7
|
+
export declare function isBigInt<T>(value: T): value is Extract<T, bigint>;
|
|
8
|
+
export declare function isString<T>(value: T): value is Extract<T, string>;
|
|
9
|
+
export declare function isNumber<T>(value: unknown): value is Extract<T, number>;
|
|
10
|
+
export declare function isObject<T>(value: T): value is Extract<T, object>;
|
|
11
|
+
export declare function isArray<T>(value: T): value is Extract<T, Array<unknown>>;
|
|
12
|
+
export declare function isFunction<T>(value: T): value is Extract<T, AnyFunction>;
|
|
14
13
|
export declare function isSymbol(value: unknown): value is symbol;
|
|
15
|
-
export declare function isEmptyObject(value: unknown): value is
|
|
16
|
-
export declare function isEmptyString(value:
|
|
17
|
-
export declare function isEmptyArray(value:
|
|
18
|
-
export declare function
|
|
19
|
-
export declare function
|
|
20
|
-
export declare function
|
|
21
|
-
export declare function
|
|
22
|
-
export declare function
|
|
23
|
-
export declare function
|
|
24
|
-
export declare function
|
|
25
|
-
export declare function
|
|
26
|
-
export declare function
|
|
27
|
-
export declare function
|
|
28
|
-
export declare function
|
|
29
|
-
export declare function
|
|
30
|
-
export declare function
|
|
31
|
-
export declare function
|
|
32
|
-
export declare function
|
|
33
|
-
export declare function
|
|
34
|
-
export declare function
|
|
35
|
-
export declare function
|
|
36
|
-
export declare function
|
|
14
|
+
export declare function isEmptyObject<T, K extends string | number | symbol>(value: T | Record<K, unknown>): value is Extract<T, Record<K, never>>;
|
|
15
|
+
export declare function isEmptyString<T>(value: T): value is Extract<T, ''>;
|
|
16
|
+
export declare function isEmptyArray<T>(value: T): value is Extract<T, Array<unknown>>;
|
|
17
|
+
export declare function isPopulatedArray<T>(value: T): value is Extract<T, Array<unknown>>;
|
|
18
|
+
export declare function isEmpty<T, K extends string | number | symbol = keyof Extract<T, object>>(value: T | Record<K, unknown> | Array<unknown>): value is Extract<T, '' | Array<unknown> | Record<K, never>>;
|
|
19
|
+
export declare function isFalsy<T>(value: T): value is Extract<T, false | 0 | '' | null | undefined>;
|
|
20
|
+
export declare function isTruthy<T>(value: unknown): value is Extract<T, true | number | string | object | symbol | AnyFunction | []>;
|
|
21
|
+
export declare function isBoolean<T>(value: T): value is Extract<T, boolean>;
|
|
22
|
+
export declare function isDateString<T>(value: T): value is Extract<T, string>;
|
|
23
|
+
export declare function isDate<T>(value: T): value is Extract<T, Date>;
|
|
24
|
+
export declare function isRegExp<T>(value: T): value is Extract<T, RegExp>;
|
|
25
|
+
export declare function isError<T>(value: T): value is Extract<T, Error>;
|
|
26
|
+
export declare function isPromise<T>(value: T): value is Extract<T, Promise<unknown>>;
|
|
27
|
+
export declare function isPromiseLike<T>(value: T): value is Extract<T, Promise<unknown>>;
|
|
28
|
+
export declare function isMap<K, V>(value: unknown | Map<K, V>): value is Map<K, V>;
|
|
29
|
+
export declare function isPlainObject<T>(value: T): value is Extract<T, object>;
|
|
30
|
+
export declare function isArrayBufferView<T>(value: T): value is Extract<T, ArrayBufferView>;
|
|
31
|
+
export declare function isSet<T>(value: unknown | Set<T>): value is Extract<T, Set<T>>;
|
|
32
|
+
export declare function isWeakMap<K extends WeakKey, V>(value: unknown | WeakMap<K, V>): value is WeakMap<K, V>;
|
|
33
|
+
export declare function isWeakSet<K extends WeakKey>(value: unknown | WeakSet<K>): value is WeakSet<K>;
|
|
34
|
+
export declare function isArrayBuffer<T>(value: T): value is Extract<T, ArrayBuffer>;
|
|
35
|
+
export declare function isDataView<T>(value: T): value is Extract<T, DataView>;
|
|
36
|
+
export declare function isBlob<T>(value: T): value is Extract<T, Blob>;
|
|
37
|
+
export declare function isFile<T>(value: T): value is Extract<T, File>;
|
|
37
38
|
//# sourceMappingURL=is.d.ts.map
|
package/dist/types/is.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is.d.ts","sourceRoot":"","sources":["../../src/is.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"is.d.ts","sourceRoot":"","sources":["../../src/is.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/is.ts
CHANGED
|
@@ -1,42 +1,46 @@
|
|
|
1
|
-
export
|
|
1
|
+
export type AnyFunction = (...args: unknown[]) => unknown
|
|
2
|
+
|
|
3
|
+
export function isUndefined<T>(value: T): value is Extract<T, undefined> {
|
|
2
4
|
return value === undefined
|
|
3
5
|
}
|
|
4
6
|
|
|
5
|
-
export function
|
|
7
|
+
export function isDefined<T>(value: T): value is Exclude<T, undefined> {
|
|
8
|
+
return !isUndefined(value)
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function isNull<T>(value: T): value is Extract<T, null> {
|
|
6
12
|
return value === null
|
|
7
13
|
}
|
|
8
14
|
|
|
9
|
-
export function
|
|
15
|
+
export function isDefinedNotNull<T>(value: T): value is Exclude<T, undefined | null> {
|
|
16
|
+
return !isUndefined(value) && !isNull(value)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function isUndefinedOrNull<T>(value: T): value is Extract<T, undefined | null> {
|
|
10
20
|
return isUndefined(value) || isNull(value)
|
|
11
21
|
}
|
|
12
22
|
|
|
13
|
-
export function isBigInt(value:
|
|
23
|
+
export function isBigInt<T>(value: T): value is Extract<T, bigint> {
|
|
14
24
|
return typeof value === 'bigint'
|
|
15
25
|
}
|
|
16
26
|
|
|
17
|
-
export function isString(value:
|
|
27
|
+
export function isString<T>(value: T): value is Extract<T, string> {
|
|
18
28
|
return typeof value === 'string'
|
|
19
29
|
}
|
|
20
30
|
|
|
21
|
-
export function isNumber(value: unknown): value is number {
|
|
31
|
+
export function isNumber<T>(value: unknown): value is Extract<T, number> {
|
|
22
32
|
return typeof value === 'number'
|
|
23
33
|
}
|
|
24
34
|
|
|
25
|
-
export function isObject(value:
|
|
26
|
-
export function isObject<T extends object>(value: unknown): value is T
|
|
27
|
-
export function isObject<T extends object>(value: T): value is T
|
|
28
|
-
export function isObject(value: unknown): value is object {
|
|
35
|
+
export function isObject<T>(value: T): value is Extract<T, object> {
|
|
29
36
|
return typeof value === 'object' && value !== null && !Array.isArray(value)
|
|
30
37
|
}
|
|
31
38
|
|
|
32
|
-
export function isArray(value:
|
|
33
|
-
export function isArray<T extends []>(value: unknown): value is T
|
|
34
|
-
export function isArray<T extends []>(value: T): value is T
|
|
35
|
-
export function isArray(value: unknown): value is [] {
|
|
39
|
+
export function isArray<T>(value: T): value is Extract<T, Array<unknown>> {
|
|
36
40
|
return Array.isArray(value)
|
|
37
41
|
}
|
|
38
42
|
|
|
39
|
-
export function isFunction(value:
|
|
43
|
+
export function isFunction<T>(value: T): value is Extract<T, AnyFunction> {
|
|
40
44
|
return typeof value === 'function'
|
|
41
45
|
}
|
|
42
46
|
|
|
@@ -44,70 +48,108 @@ export function isSymbol(value: unknown): value is symbol {
|
|
|
44
48
|
return typeof value === 'symbol'
|
|
45
49
|
}
|
|
46
50
|
|
|
47
|
-
export function isEmptyObject(value: unknown): value is
|
|
51
|
+
export function isEmptyObject<T, K extends string | number | symbol>(value: T | Record<K, unknown>): value is Extract<T, Record<K, never>> {
|
|
48
52
|
return isObject(value) && Object.keys(value).length === 0
|
|
49
53
|
}
|
|
50
54
|
|
|
51
|
-
export function isEmptyString(value:
|
|
55
|
+
export function isEmptyString<T>(value: T): value is Extract<T, ''> {
|
|
52
56
|
return isString(value) && value.length === 0
|
|
53
57
|
}
|
|
54
58
|
|
|
55
|
-
export function isEmptyArray(value:
|
|
56
|
-
export function isEmptyArray<T extends []>(value: unknown): value is T
|
|
57
|
-
export function isEmptyArray<T extends []>(value: T): value is T
|
|
58
|
-
export function isEmptyArray(value: unknown): value is [] {
|
|
59
|
+
export function isEmptyArray<T>(value: T): value is Extract<T, Array<unknown>> {
|
|
59
60
|
return isArray(value) && value.length === 0
|
|
60
61
|
}
|
|
61
62
|
|
|
62
|
-
export function isPopulatedArray(value:
|
|
63
|
-
export function isPopulatedArray<T extends []>(value: unknown): value is T
|
|
64
|
-
export function isPopulatedArray<T extends []>(value: T): value is T
|
|
65
|
-
export function isPopulatedArray(value: unknown): value is [] {
|
|
63
|
+
export function isPopulatedArray<T>(value: T): value is Extract<T, Array<unknown>> {
|
|
66
64
|
return isArray(value) && value.length > 0
|
|
67
65
|
}
|
|
68
66
|
|
|
69
|
-
export function isEmpty
|
|
67
|
+
export function isEmpty<
|
|
68
|
+
T,
|
|
69
|
+
K extends string | number | symbol = keyof Extract<T, object>,
|
|
70
|
+
>(
|
|
71
|
+
value: T | Record<K, unknown> | Array<unknown>,
|
|
72
|
+
): value is Extract<T, '' | Array<unknown> | Record<K, never>> {
|
|
70
73
|
return isEmptyString(value) || isEmptyArray(value) || isEmptyObject(value)
|
|
71
74
|
}
|
|
72
75
|
|
|
73
|
-
export function isFalsy(value:
|
|
76
|
+
export function isFalsy<T>(value: T): value is Extract<T, false | 0 | '' | null | undefined> {
|
|
74
77
|
return !value
|
|
75
78
|
}
|
|
76
79
|
|
|
77
|
-
export function isTruthy(value: unknown): value is true {
|
|
80
|
+
export function isTruthy<T>(value: unknown): value is Extract<T, true | number | string | object | symbol | AnyFunction | []> {
|
|
78
81
|
return !!value
|
|
79
82
|
}
|
|
80
83
|
|
|
81
|
-
export function isBoolean(value:
|
|
84
|
+
export function isBoolean<T>(value: T): value is Extract<T, boolean> {
|
|
82
85
|
return typeof value === 'boolean'
|
|
83
86
|
}
|
|
84
87
|
|
|
85
|
-
export function isDateString(value:
|
|
88
|
+
export function isDateString<T>(value: T): value is Extract<T, string> {
|
|
86
89
|
return isString(value) && !Number.isNaN(Date.parse(value))
|
|
87
90
|
}
|
|
88
91
|
|
|
89
|
-
export function isDate(value:
|
|
92
|
+
export function isDate<T>(value: T): value is Extract<T, Date> {
|
|
90
93
|
return value instanceof Date
|
|
91
94
|
}
|
|
92
95
|
|
|
93
|
-
export function isRegExp(value:
|
|
96
|
+
export function isRegExp<T>(value: T): value is Extract<T, RegExp> {
|
|
94
97
|
return value instanceof RegExp
|
|
95
98
|
}
|
|
96
99
|
|
|
97
|
-
export function isError(value:
|
|
100
|
+
export function isError<T>(value: T): value is Extract<T, Error> {
|
|
98
101
|
return value instanceof Error
|
|
99
102
|
}
|
|
100
103
|
|
|
101
|
-
export function isPromise(value:
|
|
102
|
-
export function isPromise<T extends Promise<unknown>>(value: unknown): value is T
|
|
103
|
-
export function isPromise<T extends Promise<unknown>>(value: T): value is T
|
|
104
|
-
export function isPromise(value: unknown): value is Promise<unknown> {
|
|
104
|
+
export function isPromise<T>(value: T): value is Extract<T, Promise<unknown>> {
|
|
105
105
|
return value instanceof Promise
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
export function
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
108
|
+
export function isPromiseLike<T>(value: T): value is Extract<T, Promise<unknown>> {
|
|
109
|
+
return (
|
|
110
|
+
typeof value === 'object'
|
|
111
|
+
&& value !== null
|
|
112
|
+
&& typeof (value as Record<string, unknown>).then === 'function'
|
|
113
|
+
)
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export function isMap<K, V>(value: unknown | Map<K, V>): value is Map<K, V> {
|
|
112
117
|
return value instanceof Map
|
|
113
118
|
}
|
|
119
|
+
|
|
120
|
+
// excludes classes not a class
|
|
121
|
+
export function isPlainObject<T>(value: T): value is Extract<T, object> {
|
|
122
|
+
return isObject(value) && value.constructor === Object
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export function isArrayBufferView<T>(value: T): value is Extract<T, ArrayBufferView> {
|
|
126
|
+
return ArrayBuffer.isView(value)
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export function isSet<T>(value: unknown | Set<T>): value is Extract<T, Set<T>> {
|
|
130
|
+
return value instanceof Set
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
export function isWeakMap<K extends WeakKey, V>(value: unknown | WeakMap<K, V>): value is WeakMap<K, V> {
|
|
134
|
+
return value instanceof WeakMap
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
export function isWeakSet<K extends WeakKey>(value: unknown | WeakSet<K>): value is WeakSet<K> {
|
|
138
|
+
return value instanceof WeakSet
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
export function isArrayBuffer<T>(value: T): value is Extract<T, ArrayBuffer> {
|
|
142
|
+
return value instanceof ArrayBuffer
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export function isDataView<T>(value: T): value is Extract<T, DataView> {
|
|
146
|
+
return value instanceof DataView
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
export function isBlob<T>(value: T): value is Extract<T, Blob> {
|
|
150
|
+
return typeof Blob !== 'undefined' && value instanceof Blob
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
export function isFile<T>(value: T): value is Extract<T, File> {
|
|
154
|
+
return typeof File !== 'undefined' && value instanceof File
|
|
155
|
+
}
|