@xylabs/typeof 4.12.2 → 4.12.3
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.map +1 -1
- package/dist/types/is.d.ts +2 -1
- package/dist/types/is.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/is.ts +4 -2
|
@@ -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 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":[]}
|
|
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(value: unknown): value is object\nexport function isObject<T extends object>(value: T): value is Extract<T, object>\nexport function isObject(value: unknown): value is 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
|
@@ -7,7 +7,8 @@ export declare function isUndefinedOrNull<T>(value: T): value is Extract<T, unde
|
|
|
7
7
|
export declare function isBigInt<T>(value: T): value is Extract<T, bigint>;
|
|
8
8
|
export declare function isString<T>(value: T): value is Extract<T, string>;
|
|
9
9
|
export declare function isNumber<T>(value: unknown): value is Extract<T, number>;
|
|
10
|
-
export declare function isObject
|
|
10
|
+
export declare function isObject(value: unknown): value is object;
|
|
11
|
+
export declare function isObject<T extends object>(value: T): value is Extract<T, object>;
|
|
11
12
|
export declare function isArray<T>(value: T): value is Extract<T, Array<unknown>>;
|
|
12
13
|
export declare function isFunction<T>(value: T): value is Extract<T, AnyFunction>;
|
|
13
14
|
export declare function isSymbol(value: unknown): value is symbol;
|
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,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAA;AAEzD,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAEvE;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAErE;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAE7D;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,CAEnF;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,CAEpF;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAEjE;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAEjE;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAEvE;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,
|
|
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
|
@@ -32,8 +32,10 @@ export function isNumber<T>(value: unknown): value is Extract<T, number> {
|
|
|
32
32
|
return typeof value === 'number'
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
export function isObject
|
|
36
|
-
|
|
35
|
+
export function isObject(value: unknown): value is object
|
|
36
|
+
export function isObject<T extends object>(value: T): value is Extract<T, object>
|
|
37
|
+
export function isObject(value: unknown): value is object {
|
|
38
|
+
return (typeof value === 'object') && (value !== null) && !Array.isArray(value)
|
|
37
39
|
}
|
|
38
40
|
|
|
39
41
|
export function isArray<T>(value: T): value is Extract<T, Array<unknown>> {
|