@xylabs/typeof 4.12.4 → 4.12.5

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.
@@ -82,7 +82,7 @@ function isFalsy(value) {
82
82
  return !value;
83
83
  }
84
84
  function isTruthy(value) {
85
- return !!value;
85
+ return !value;
86
86
  }
87
87
  function isBoolean(value) {
88
88
  return typeof value === "boolean";
@@ -108,9 +108,6 @@ function isPromiseLike(value) {
108
108
  function isMap(value) {
109
109
  return value instanceof Map;
110
110
  }
111
- function isPlainObject(value) {
112
- return isObject(value) && value.constructor === Object;
113
- }
114
111
  function isArrayBufferView(value) {
115
112
  return ArrayBuffer.isView(value);
116
113
  }
@@ -238,7 +235,6 @@ export {
238
235
  isNull,
239
236
  isNumber,
240
237
  isObject,
241
- isPlainObject,
242
238
  isPopulatedArray,
243
239
  isPromise,
244
240
  isPromiseLike,
@@ -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(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":[]}
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\nexport type RecordKey = string | number | symbol\n\nexport function isUndefined(value: unknown): value is undefined\nexport function isUndefined<T>(value: T): value is Extract<T, undefined>\nexport function isUndefined(value: unknown): value is 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(value: unknown): value is null\nexport function isNull<T>(value: T): value is Extract<T, null>\nexport function isNull(value: unknown): value is 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(value: unknown): value is undefined | null\nexport function isUndefinedOrNull<T>(value: T): value is Extract<T, undefined | null>\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\nexport function isBigInt<T extends bigint>(value: T): value is Extract<T, bigint>\nexport function isBigInt(value: unknown): value is bigint {\n return typeof value === 'bigint'\n}\n\nexport function isString(value: unknown): value is string\nexport function isString<T extends string>(value: T): value is Extract<T, string>\nexport function isString(value: unknown): value is string {\n return typeof value === 'string'\n}\n\nexport function isNumber(value: unknown): value is number\nexport function isNumber<T extends number>(value: T): value is Extract<T, number>\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: 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(value: unknown): value is []\nexport function isArray<T extends []>(value: T): value is Extract<T, Array<unknown>>\nexport function isArray(value: unknown): value is [] {\n return Array.isArray(value)\n}\n\nexport function isFunction(value: unknown): value is AnyFunction\nexport function isFunction<T extends AnyFunction>(value: T): value is Extract<T, AnyFunction>\nexport function isFunction(value: unknown): value is AnyFunction {\n return typeof value === 'function'\n}\n\nexport function isSymbol(value: unknown): value is symbol\nexport function isSymbol<T extends symbol>(value: T): value is Extract<T, symbol>\nexport function isSymbol(value: unknown): value is symbol {\n return typeof value === 'symbol'\n}\n\nexport function isEmptyObject(value: unknown): value is {}\nexport function isEmptyObject<K extends RecordKey, V, T extends Record<K, V>>(value: T): value is Extract<T, Record<K, never>>\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 ''\nexport function isEmptyString<T extends string>(value: T): value is Extract<T, ''>\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 Array<unknown>>(value: T): value is Extract<T, Array<unknown>>\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 Array<unknown>>(value: T): value is Extract<T, Array<unknown>>\nexport function isPopulatedArray(value: unknown): value is [] {\n return isArray(value) && value.length > 0\n}\n\nexport function isEmpty<T>(value: unknown): value is T\nexport function isEmpty<K extends RecordKey, V, T extends Record<K, V>>(value: T): value is Extract<T, Record<K, never>>\nexport function isEmpty<T extends Array<unknown>>(value: T): value is Extract<T, Array<never>>\nexport function isEmpty<T>(value: unknown): value is T {\n return isEmptyString(value) || isEmptyArray(value) || isEmptyObject(value)\n}\n\nexport function isFalsy(value: unknown): value is false\nexport function isFalsy<T extends boolean>(value: T): value is Extract<T, false>\nexport function isFalsy<T extends number>(value: T): value is Extract<T, 0>\nexport function isFalsy<T extends bigint>(value: T): value is Extract<T, 0n>\nexport function isFalsy<T extends null>(value: T): value is Extract<T, null>\nexport function isFalsy<T extends undefined>(value: T): value is Extract<T, undefined>\nexport function isFalsy<T extends string>(value: T): value is Extract<T, ''>\nexport function isFalsy(value: unknown): value is false {\n return !value\n}\n\nexport function isTruthy(value: unknown): value is true\nexport function isTruthy<T extends boolean>(value: T): value is Extract<T, true>\nexport function isTruthy<T extends number>(value: T): value is Extract<T, number>\nexport function isTruthy<T extends bigint>(value: T): value is Extract<T, bigint>\nexport function isTruthy<T extends null>(value: T): value is Extract<T, null>\nexport function isTruthy<T extends undefined>(value: T): value is Extract<T, undefined>\nexport function isTruthy<T extends string>(value: T): value is Extract<T, string>\nexport function isTruthy(value: unknown): value is true {\n return !value\n}\n\nexport function isBoolean(value: unknown): value is boolean\nexport function isBoolean<T extends boolean>(value: T): value is Extract<T, boolean>\nexport function isBoolean(value: unknown): value is boolean {\n return typeof value === 'boolean'\n}\n\nexport function isDateString(value: unknown): value is string\nexport function isDateString<T>(value: T): value is Extract<T, string>\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\nexport function isDate<T>(value: T): value is Extract<T, Date>\nexport function isDate(value: unknown): value is Date {\n return value instanceof Date\n}\n\nexport function isRegExp(value: unknown): value is RegExp\nexport function isRegExp<T extends RegExp>(value: T): value is Extract<T, RegExp>\nexport function isRegExp(value: unknown): value is RegExp {\n return value instanceof RegExp\n}\n\nexport function isError(value: unknown): value is Error\nexport function isError<T>(value: T): value is Extract<T, Error>\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>(value: T): value is Extract<T, Promise<unknown>>\nexport function isPromise(value: unknown): value is Promise<unknown> {\n return value instanceof Promise\n}\n\nexport function isPromiseLike(value: unknown): value is Promise<unknown>\nexport function isPromiseLike<T>(value: T): value is Extract<T, Promise<unknown>>\nexport function isPromiseLike(value: unknown): value is 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(value: unknown): value is Map<unknown, unknown>\nexport function isMap<K, V, T extends Map<K, V>>(value: T): value is Extract<T, Map<K, V>>\nexport function isMap(value: unknown): value is Map<unknown, unknown> {\n return value instanceof Map\n}\n\nexport function isArrayBufferView(value: unknown): value is ArrayBufferView\nexport function isArrayBufferView<T extends ArrayBufferView>(value: T): value is Extract<T, ArrayBufferView>\nexport function isArrayBufferView(value: unknown): value is ArrayBufferView {\n return ArrayBuffer.isView(value)\n}\n\nexport function isSet(value: unknown): value is Set<unknown>\nexport function isSet<T extends Set<unknown>>(value: unknown | Set<T>): value is Extract<T, Set<unknown>>\nexport function isSet(value: unknown): value is Set<unknown> {\n return value instanceof Set\n}\n\nexport function isWeakMap(value: unknown): value is WeakMap<WeakKey, unknown>\nexport function isWeakMap<K extends WeakKey, V, T extends WeakMap<K, V>>(value: T): value is Extract<T, WeakMap<K, V>>\nexport function isWeakMap(value: unknown): value is WeakMap<WeakKey, unknown> {\n return value instanceof WeakMap\n}\n\nexport function isWeakSet(value: unknown): value is WeakSet<WeakKey>\nexport function isWeakSet<K extends WeakKey, T extends WeakSet<K>>(value: T): value is Extract<T, WeakSet<K>>\nexport function isWeakSet(value: unknown): value is WeakSet<WeakKey> {\n return value instanceof WeakSet\n}\n\nexport function isArrayBuffer(value: unknown): value is ArrayBuffer\nexport function isArrayBuffer<T extends ArrayBuffer>(value: T): value is Extract<T, ArrayBuffer>\nexport function isArrayBuffer(value: unknown): value is ArrayBuffer {\n return value instanceof ArrayBuffer\n}\n\nexport function isDataView(value: unknown): value is DataView\nexport function isDataView<T>(value: T): value is Extract<T, DataView>\nexport function isDataView(value: unknown): value is DataView {\n return value instanceof DataView\n}\n\nexport function isBlob(value: unknown): value is Blob\nexport function isBlob<T extends Blob>(value: T): value is Extract<T, Blob>\nexport function isBlob(value: unknown): value is Blob {\n return typeof Blob !== 'undefined' && value instanceof Blob\n}\n\nexport function isFile(value: unknown): value is File\nexport function isFile<T extends File>(value: T): value is Extract<T, File>\nexport function isFile(value: unknown): value is 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":";AAEO,IAAM,SAAS,CAAI,SAAyB;AACjD,SAAO,MAAM,QAAQ,IAAI,IAAI,UAAU,OAAO;AAChD;;;ACFO,IAAM,YAAY,CAAI,OAAU,SAA6B;AAClE,UAAQ,OAAO,KAAK,GAAG;AAAA,IACrB,KAAK;AAAA,IACL,KAAK,QAAQ;AACX;AAAA,IACF;AAAA,IACA,SAAS;AACP,WAAK,KAAK;AACV,aAAO;AAAA,IACT;AAAA,EACF;AACF;;;ACVO,IAAM,WAAW,CAAO,UAAuB,OAAgB,UAA2B,WAAmC;AAClI,UAAQ,OAAO,KAAK,GAAG;AAAA,IACrB,KAAK,UAAU;AACb,aAAO,CAAC,UAAU,OAAO,KAAU,IAAI,SAAS,KAAU,IAAI;AAAA,IAChE;AAAA,EACF;AACF;;;ACJO,SAAS,YAAY,OAAoC;AAC9D,SAAO,UAAU;AACnB;AAEO,SAAS,UAAa,OAA0C;AACrE,SAAO,CAAC,YAAY,KAAK;AAC3B;AAIO,SAAS,OAAO,OAA+B;AACpD,SAAO,UAAU;AACnB;AAEO,SAAS,iBAAoB,OAAiD;AACnF,SAAO,CAAC,YAAY,KAAK,KAAK,CAAC,OAAO,KAAK;AAC7C;AAIO,SAAS,kBAAkB,OAA2C;AAC3E,SAAO,YAAY,KAAK,KAAK,OAAO,KAAK;AAC3C;AAIO,SAAS,SAAS,OAAiC;AACxD,SAAO,OAAO,UAAU;AAC1B;AAIO,SAAS,SAAS,OAAiC;AACxD,SAAO,OAAO,UAAU;AAC1B;AAIO,SAAS,SAAS,OAAiC;AACxD,SAAO,OAAO,UAAU;AAC1B;AAIO,SAAS,SAAS,OAAiC;AACxD,SAAQ,OAAO,UAAU,YAAc,UAAU,QAAS,CAAC,MAAM,QAAQ,KAAK;AAChF;AAIO,SAAS,QAAQ,OAA6B;AACnD,SAAO,MAAM,QAAQ,KAAK;AAC5B;AAIO,SAAS,WAAW,OAAsC;AAC/D,SAAO,OAAO,UAAU;AAC1B;AAIO,SAAS,SAAS,OAAiC;AACxD,SAAO,OAAO,UAAU;AAC1B;AAIO,SAAS,cAAc,OAA6B;AACzD,SAAO,SAAS,KAAK,KAAK,OAAO,KAAK,KAAK,EAAE,WAAW;AAC1D;AAIO,SAAS,cAAc,OAA6B;AACzD,SAAO,SAAS,KAAK,KAAK,MAAM,WAAW;AAC7C;AAIO,SAAS,aAAa,OAA6B;AACxD,SAAO,QAAQ,KAAK,KAAK,MAAM,WAAW;AAC5C;AAIO,SAAS,iBAAiB,OAA6B;AAC5D,SAAO,QAAQ,KAAK,KAAK,MAAM,SAAS;AAC1C;AAKO,SAAS,QAAW,OAA4B;AACrD,SAAO,cAAc,KAAK,KAAK,aAAa,KAAK,KAAK,cAAc,KAAK;AAC3E;AASO,SAAS,QAAQ,OAAgC;AACtD,SAAO,CAAC;AACV;AASO,SAAS,SAAS,OAA+B;AACtD,SAAO,CAAC;AACV;AAIO,SAAS,UAAU,OAAkC;AAC1D,SAAO,OAAO,UAAU;AAC1B;AAIO,SAAS,aAAa,OAAiC;AAC5D,SAAO,SAAS,KAAK,KAAK,CAAC,OAAO,MAAM,KAAK,MAAM,KAAK,CAAC;AAC3D;AAIO,SAAS,OAAO,OAA+B;AACpD,SAAO,iBAAiB;AAC1B;AAIO,SAAS,SAAS,OAAiC;AACxD,SAAO,iBAAiB;AAC1B;AAIO,SAAS,QAAQ,OAAgC;AACtD,SAAO,iBAAiB;AAC1B;AAIO,SAAS,UAAU,OAA2C;AACnE,SAAO,iBAAiB;AAC1B;AAIO,SAAS,cAAc,OAA2C;AACvE,SACE,OAAO,UAAU,YACd,UAAU,QACV,OAAQ,MAAkC,SAAS;AAE1D;AAIO,SAAS,MAAM,OAAgD;AACpE,SAAO,iBAAiB;AAC1B;AAIO,SAAS,kBAAkB,OAA0C;AAC1E,SAAO,YAAY,OAAO,KAAK;AACjC;AAIO,SAAS,MAAM,OAAuC;AAC3D,SAAO,iBAAiB;AAC1B;AAIO,SAAS,UAAU,OAAoD;AAC5E,SAAO,iBAAiB;AAC1B;AAIO,SAAS,UAAU,OAA2C;AACnE,SAAO,iBAAiB;AAC1B;AAIO,SAAS,cAAc,OAAsC;AAClE,SAAO,iBAAiB;AAC1B;AAIO,SAAS,WAAW,OAAmC;AAC5D,SAAO,iBAAiB;AAC1B;AAIO,SAAS,OAAO,OAA+B;AACpD,SAAO,OAAO,SAAS,eAAe,iBAAiB;AACzD;AAIO,SAAS,OAAO,OAA+B;AACpD,SAAO,OAAO,SAAS,eAAe,iBAAiB;AACzD;;;AC5NO,IAAM,SAAS,CAAC,OAAgB,iBAA4B;AACjE,QAAM,cAAc,OAAO;AAC3B,UAAQ,cAAc;AAAA,IACpB,KAAK,SAAS;AACZ,aAAO,MAAM,QAAQ,KAAK;AAAA,IAC5B;AAAA,IACA,KAAK,QAAQ;AACX,aAAO,UAAU;AAAA,IACnB;AAAA,IACA,KAAK,aAAa;AAChB,aAAO,UAAU;AAAA,IACnB;AAAA,IACA,KAAK,UAAU;AAEb,UAAI,UAAU,MAAM;AAClB,eAAO;AAAA,MACT;AAEA,aAAO,gBAAgB,YAAY,CAAC,MAAM,QAAQ,KAAK;AAAA,IACzD;AAAA,IACA,SAAS;AACP,aAAO,gBAAgB;AAAA,IACzB;AAAA,EACF;AACF;;;AClBO,IAAM,aAAa,CAAC,UAAsC;AAC/D,UAAQ,OAAO,OAAO;AAAA,IACpB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK,UAAU;AACb,aAAO;AAAA,IACT;AAAA,IACA,SAAS;AACP,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEO,IAAM,eAAe,CAAC,UAAwC;AACnE,UAAQ,OAAO,OAAO;AAAA,IACpB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK,WAAW;AACd,aAAO;AAAA,IACT;AAAA,IACA,SAAS;AACP,aAAO,UAAU,QAAQ,cAAc,KAAK,KAAK,aAAa,KAAK;AAAA,IACrE;AAAA,EACF;AACF;AAEO,IAAM,eAAe,CAAC,UAAwC;AACnE,SAAO,MAAM,QAAQ,KAAK,KAAK,CAAC,MAAM,KAAK,UAAQ,CAAC,aAAa,IAAI,CAAC;AACxE;AAEO,IAAM,wBAAwB,CAAC,SAAqF;AACzH,QAAM,CAAC,KAAK,KAAK,IAAI;AACrB,SAAO,WAAW,GAAG,KAAK,aAAa,KAAK;AAC9C;AAEO,IAAM,gBAAgB,CAAC,UAAyC;AACrE,SACE,OAAO,OAAO,QAAQ,KAEnB,CAAC,OAAO,QAAQ,KAAe,EAAE,KAAK,UAAQ,CAAC,sBAAsB,IAAI,CAAC;AAEjF;;;AC/CO,IAAM,eAAe,CAAI,UAAuB,OAAU,WAAW,UAAoC;AAC9G,UAAQ,OAAO,KAAK,GAAG;AAAA,IACrB,KAAK,UAAU;AACb,aAAO,CAAC,OAAO,CAAC,CAAC;AAAA,IACnB;AAAA,IACA,SAAS;AACP,UAAI,YAAY,OAAO,KAAK,MAAM,aAAa;AAC7C,eAAO,CAAC,OAAO,CAAC,CAAC;AAAA,MACnB;AACA,aAAO,CAAC,QAAW,CAAC,IAAI,MAAM,sBAAsB,QAAQ,IAAI,OAAO,KAAK,GAAG,CAAC,CAAC;AAAA,IACnF;AAAA,EACF;AACF;","names":[]}
@@ -1,39 +1,82 @@
1
1
  export type AnyFunction = (...args: unknown[]) => unknown;
2
+ export type RecordKey = string | number | symbol;
3
+ export declare function isUndefined(value: unknown): value is undefined;
2
4
  export declare function isUndefined<T>(value: T): value is Extract<T, undefined>;
3
5
  export declare function isDefined<T>(value: T): value is Exclude<T, undefined>;
6
+ export declare function isNull(value: unknown): value is null;
4
7
  export declare function isNull<T>(value: T): value is Extract<T, null>;
5
8
  export declare function isDefinedNotNull<T>(value: T): value is Exclude<T, undefined | null>;
9
+ export declare function isUndefinedOrNull(value: unknown): value is undefined | null;
6
10
  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>;
11
+ export declare function isBigInt(value: unknown): value is bigint;
12
+ export declare function isBigInt<T extends bigint>(value: T): value is Extract<T, bigint>;
13
+ export declare function isString(value: unknown): value is string;
14
+ export declare function isString<T extends string>(value: T): value is Extract<T, string>;
15
+ export declare function isNumber(value: unknown): value is number;
16
+ export declare function isNumber<T extends number>(value: T): value is Extract<T, number>;
10
17
  export declare function isObject(value: unknown): value is object;
11
18
  export declare function isObject<T extends object>(value: T): value is Extract<T, object>;
12
- export declare function isArray<T>(value: T): value is Extract<T, Array<unknown>>;
13
- export declare function isFunction<T>(value: T): value is Extract<T, AnyFunction>;
19
+ export declare function isArray(value: unknown): value is [];
20
+ export declare function isArray<T extends []>(value: T): value is Extract<T, Array<unknown>>;
21
+ export declare function isFunction(value: unknown): value is AnyFunction;
22
+ export declare function isFunction<T extends AnyFunction>(value: T): value is Extract<T, AnyFunction>;
14
23
  export declare function isSymbol(value: unknown): value is symbol;
15
- export declare function isEmptyObject<T, K extends string | number | symbol>(value: T | Record<K, unknown>): value is Extract<T, Record<K, never>>;
16
- export declare function isEmptyString<T>(value: T): value is Extract<T, ''>;
17
- export declare function isEmptyArray<T>(value: T): value is Extract<T, Array<unknown>>;
18
- export declare function isPopulatedArray<T>(value: T): value is Extract<T, Array<unknown>>;
19
- 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>>;
20
- export declare function isFalsy<T>(value: T): value is Extract<T, false | 0 | '' | null | undefined>;
21
- export declare function isTruthy<T>(value: unknown): value is Extract<T, true | number | string | object | symbol | AnyFunction | []>;
22
- export declare function isBoolean<T>(value: T): value is Extract<T, boolean>;
24
+ export declare function isSymbol<T extends symbol>(value: T): value is Extract<T, symbol>;
25
+ export declare function isEmptyObject(value: unknown): value is {};
26
+ export declare function isEmptyObject<K extends RecordKey, V, T extends Record<K, V>>(value: T): value is Extract<T, Record<K, never>>;
27
+ export declare function isEmptyString(value: unknown): value is '';
28
+ export declare function isEmptyString<T extends string>(value: T): value is Extract<T, ''>;
29
+ export declare function isEmptyArray(value: unknown): value is [];
30
+ export declare function isEmptyArray<T extends Array<unknown>>(value: T): value is Extract<T, Array<unknown>>;
31
+ export declare function isPopulatedArray(value: unknown): value is [];
32
+ export declare function isPopulatedArray<T extends Array<unknown>>(value: T): value is Extract<T, Array<unknown>>;
33
+ export declare function isEmpty<T>(value: unknown): value is T;
34
+ export declare function isEmpty<K extends RecordKey, V, T extends Record<K, V>>(value: T): value is Extract<T, Record<K, never>>;
35
+ export declare function isEmpty<T extends Array<unknown>>(value: T): value is Extract<T, Array<never>>;
36
+ export declare function isFalsy(value: unknown): value is false;
37
+ export declare function isFalsy<T extends boolean>(value: T): value is Extract<T, false>;
38
+ export declare function isFalsy<T extends number>(value: T): value is Extract<T, 0>;
39
+ export declare function isFalsy<T extends bigint>(value: T): value is Extract<T, 0n>;
40
+ export declare function isFalsy<T extends null>(value: T): value is Extract<T, null>;
41
+ export declare function isFalsy<T extends undefined>(value: T): value is Extract<T, undefined>;
42
+ export declare function isFalsy<T extends string>(value: T): value is Extract<T, ''>;
43
+ export declare function isTruthy(value: unknown): value is true;
44
+ export declare function isTruthy<T extends boolean>(value: T): value is Extract<T, true>;
45
+ export declare function isTruthy<T extends number>(value: T): value is Extract<T, number>;
46
+ export declare function isTruthy<T extends bigint>(value: T): value is Extract<T, bigint>;
47
+ export declare function isTruthy<T extends null>(value: T): value is Extract<T, null>;
48
+ export declare function isTruthy<T extends undefined>(value: T): value is Extract<T, undefined>;
49
+ export declare function isTruthy<T extends string>(value: T): value is Extract<T, string>;
50
+ export declare function isBoolean(value: unknown): value is boolean;
51
+ export declare function isBoolean<T extends boolean>(value: T): value is Extract<T, boolean>;
52
+ export declare function isDateString(value: unknown): value is string;
23
53
  export declare function isDateString<T>(value: T): value is Extract<T, string>;
54
+ export declare function isDate(value: unknown): value is Date;
24
55
  export declare function isDate<T>(value: T): value is Extract<T, Date>;
25
- export declare function isRegExp<T>(value: T): value is Extract<T, RegExp>;
56
+ export declare function isRegExp(value: unknown): value is RegExp;
57
+ export declare function isRegExp<T extends RegExp>(value: T): value is Extract<T, RegExp>;
58
+ export declare function isError(value: unknown): value is Error;
26
59
  export declare function isError<T>(value: T): value is Extract<T, Error>;
60
+ export declare function isPromise(value: unknown): value is Promise<unknown>;
27
61
  export declare function isPromise<T>(value: T): value is Extract<T, Promise<unknown>>;
62
+ export declare function isPromiseLike(value: unknown): value is Promise<unknown>;
28
63
  export declare function isPromiseLike<T>(value: T): value is Extract<T, Promise<unknown>>;
29
- export declare function isMap<K, V>(value: unknown | Map<K, V>): value is Map<K, V>;
30
- export declare function isPlainObject<T>(value: T): value is Extract<T, object>;
31
- export declare function isArrayBufferView<T>(value: T): value is Extract<T, ArrayBufferView>;
32
- export declare function isSet<T>(value: unknown | Set<T>): value is Extract<T, Set<T>>;
33
- export declare function isWeakMap<K extends WeakKey, V>(value: unknown | WeakMap<K, V>): value is WeakMap<K, V>;
34
- export declare function isWeakSet<K extends WeakKey>(value: unknown | WeakSet<K>): value is WeakSet<K>;
35
- export declare function isArrayBuffer<T>(value: T): value is Extract<T, ArrayBuffer>;
64
+ export declare function isMap(value: unknown): value is Map<unknown, unknown>;
65
+ export declare function isMap<K, V, T extends Map<K, V>>(value: T): value is Extract<T, Map<K, V>>;
66
+ export declare function isArrayBufferView(value: unknown): value is ArrayBufferView;
67
+ export declare function isArrayBufferView<T extends ArrayBufferView>(value: T): value is Extract<T, ArrayBufferView>;
68
+ export declare function isSet(value: unknown): value is Set<unknown>;
69
+ export declare function isSet<T extends Set<unknown>>(value: unknown | Set<T>): value is Extract<T, Set<unknown>>;
70
+ export declare function isWeakMap(value: unknown): value is WeakMap<WeakKey, unknown>;
71
+ export declare function isWeakMap<K extends WeakKey, V, T extends WeakMap<K, V>>(value: T): value is Extract<T, WeakMap<K, V>>;
72
+ export declare function isWeakSet(value: unknown): value is WeakSet<WeakKey>;
73
+ export declare function isWeakSet<K extends WeakKey, T extends WeakSet<K>>(value: T): value is Extract<T, WeakSet<K>>;
74
+ export declare function isArrayBuffer(value: unknown): value is ArrayBuffer;
75
+ export declare function isArrayBuffer<T extends ArrayBuffer>(value: T): value is Extract<T, ArrayBuffer>;
76
+ export declare function isDataView(value: unknown): value is DataView;
36
77
  export declare function isDataView<T>(value: T): value is Extract<T, DataView>;
37
- export declare function isBlob<T>(value: T): value is Extract<T, Blob>;
38
- export declare function isFile<T>(value: T): value is Extract<T, File>;
78
+ export declare function isBlob(value: unknown): value is Blob;
79
+ export declare function isBlob<T extends Blob>(value: T): value is Extract<T, Blob>;
80
+ export declare function isFile(value: unknown): value is File;
81
+ export declare function isFile<T extends File>(value: T): value is Extract<T, File>;
39
82
  //# sourceMappingURL=is.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"is.d.ts","sourceRoot":"","sources":["../../src/is.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"is.d.ts","sourceRoot":"","sources":["../../src/is.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xylabs/typeof",
3
- "version": "4.12.4",
3
+ "version": "4.12.5",
4
4
  "description": "Base functionality used throughout XY Labs TypeScript/JavaScript libraries",
5
5
  "keywords": [
6
6
  "typeof",
package/src/is.ts CHANGED
@@ -1,6 +1,9 @@
1
1
  export type AnyFunction = (...args: unknown[]) => unknown
2
+ export type RecordKey = string | number | symbol
2
3
 
3
- export function isUndefined<T>(value: T): value is Extract<T, undefined> {
4
+ export function isUndefined(value: unknown): value is undefined
5
+ export function isUndefined<T>(value: T): value is Extract<T, undefined>
6
+ export function isUndefined(value: unknown): value is undefined {
4
7
  return value === undefined
5
8
  }
6
9
 
@@ -8,7 +11,9 @@ export function isDefined<T>(value: T): value is Exclude<T, undefined> {
8
11
  return !isUndefined(value)
9
12
  }
10
13
 
11
- export function isNull<T>(value: T): value is Extract<T, null> {
14
+ export function isNull(value: unknown): value is null
15
+ export function isNull<T>(value: T): value is Extract<T, null>
16
+ export function isNull(value: unknown): value is null {
12
17
  return value === null
13
18
  }
14
19
 
@@ -16,19 +21,27 @@ export function isDefinedNotNull<T>(value: T): value is Exclude<T, undefined | n
16
21
  return !isUndefined(value) && !isNull(value)
17
22
  }
18
23
 
19
- export function isUndefinedOrNull<T>(value: T): value is Extract<T, undefined | null> {
24
+ export function isUndefinedOrNull(value: unknown): value is undefined | null
25
+ export function isUndefinedOrNull<T>(value: T): value is Extract<T, undefined | null>
26
+ export function isUndefinedOrNull(value: unknown): value is undefined | null {
20
27
  return isUndefined(value) || isNull(value)
21
28
  }
22
29
 
23
- export function isBigInt<T>(value: T): value is Extract<T, bigint> {
30
+ export function isBigInt(value: unknown): value is bigint
31
+ export function isBigInt<T extends bigint>(value: T): value is Extract<T, bigint>
32
+ export function isBigInt(value: unknown): value is bigint {
24
33
  return typeof value === 'bigint'
25
34
  }
26
35
 
27
- export function isString<T>(value: T): value is Extract<T, string> {
36
+ export function isString(value: unknown): value is string
37
+ export function isString<T extends string>(value: T): value is Extract<T, string>
38
+ export function isString(value: unknown): value is string {
28
39
  return typeof value === 'string'
29
40
  }
30
41
 
31
- export function isNumber<T>(value: unknown): value is Extract<T, number> {
42
+ export function isNumber(value: unknown): value is number
43
+ export function isNumber<T extends number>(value: T): value is Extract<T, number>
44
+ export function isNumber(value: unknown): value is number {
32
45
  return typeof value === 'number'
33
46
  }
34
47
 
@@ -38,76 +51,116 @@ export function isObject(value: unknown): value is object {
38
51
  return (typeof value === 'object') && (value !== null) && !Array.isArray(value)
39
52
  }
40
53
 
41
- export function isArray<T>(value: T): value is Extract<T, Array<unknown>> {
54
+ export function isArray(value: unknown): value is []
55
+ export function isArray<T extends []>(value: T): value is Extract<T, Array<unknown>>
56
+ export function isArray(value: unknown): value is [] {
42
57
  return Array.isArray(value)
43
58
  }
44
59
 
45
- export function isFunction<T>(value: T): value is Extract<T, AnyFunction> {
60
+ export function isFunction(value: unknown): value is AnyFunction
61
+ export function isFunction<T extends AnyFunction>(value: T): value is Extract<T, AnyFunction>
62
+ export function isFunction(value: unknown): value is AnyFunction {
46
63
  return typeof value === 'function'
47
64
  }
48
65
 
66
+ export function isSymbol(value: unknown): value is symbol
67
+ export function isSymbol<T extends symbol>(value: T): value is Extract<T, symbol>
49
68
  export function isSymbol(value: unknown): value is symbol {
50
69
  return typeof value === 'symbol'
51
70
  }
52
71
 
53
- export function isEmptyObject<T, K extends string | number | symbol>(value: T | Record<K, unknown>): value is Extract<T, Record<K, never>> {
72
+ export function isEmptyObject(value: unknown): value is {}
73
+ export function isEmptyObject<K extends RecordKey, V, T extends Record<K, V>>(value: T): value is Extract<T, Record<K, never>>
74
+ export function isEmptyObject(value: unknown): value is {} {
54
75
  return isObject(value) && Object.keys(value).length === 0
55
76
  }
56
77
 
57
- export function isEmptyString<T>(value: T): value is Extract<T, ''> {
78
+ export function isEmptyString(value: unknown): value is ''
79
+ export function isEmptyString<T extends string>(value: T): value is Extract<T, ''>
80
+ export function isEmptyString(value: unknown): value is '' {
58
81
  return isString(value) && value.length === 0
59
82
  }
60
83
 
61
- export function isEmptyArray<T>(value: T): value is Extract<T, Array<unknown>> {
84
+ export function isEmptyArray(value: unknown): value is []
85
+ export function isEmptyArray<T extends Array<unknown>>(value: T): value is Extract<T, Array<unknown>>
86
+ export function isEmptyArray(value: unknown): value is [] {
62
87
  return isArray(value) && value.length === 0
63
88
  }
64
89
 
65
- export function isPopulatedArray<T>(value: T): value is Extract<T, Array<unknown>> {
90
+ export function isPopulatedArray(value: unknown): value is []
91
+ export function isPopulatedArray<T extends Array<unknown>>(value: T): value is Extract<T, Array<unknown>>
92
+ export function isPopulatedArray(value: unknown): value is [] {
66
93
  return isArray(value) && value.length > 0
67
94
  }
68
95
 
69
- export function isEmpty<
70
- T,
71
- K extends string | number | symbol = keyof Extract<T, object>,
72
- >(
73
- value: T | Record<K, unknown> | Array<unknown>,
74
- ): value is Extract<T, '' | Array<unknown> | Record<K, never>> {
96
+ export function isEmpty<T>(value: unknown): value is T
97
+ export function isEmpty<K extends RecordKey, V, T extends Record<K, V>>(value: T): value is Extract<T, Record<K, never>>
98
+ export function isEmpty<T extends Array<unknown>>(value: T): value is Extract<T, Array<never>>
99
+ export function isEmpty<T>(value: unknown): value is T {
75
100
  return isEmptyString(value) || isEmptyArray(value) || isEmptyObject(value)
76
101
  }
77
102
 
78
- export function isFalsy<T>(value: T): value is Extract<T, false | 0 | '' | null | undefined> {
103
+ export function isFalsy(value: unknown): value is false
104
+ export function isFalsy<T extends boolean>(value: T): value is Extract<T, false>
105
+ export function isFalsy<T extends number>(value: T): value is Extract<T, 0>
106
+ export function isFalsy<T extends bigint>(value: T): value is Extract<T, 0n>
107
+ export function isFalsy<T extends null>(value: T): value is Extract<T, null>
108
+ export function isFalsy<T extends undefined>(value: T): value is Extract<T, undefined>
109
+ export function isFalsy<T extends string>(value: T): value is Extract<T, ''>
110
+ export function isFalsy(value: unknown): value is false {
79
111
  return !value
80
112
  }
81
113
 
82
- export function isTruthy<T>(value: unknown): value is Extract<T, true | number | string | object | symbol | AnyFunction | []> {
83
- return !!value
114
+ export function isTruthy(value: unknown): value is true
115
+ export function isTruthy<T extends boolean>(value: T): value is Extract<T, true>
116
+ export function isTruthy<T extends number>(value: T): value is Extract<T, number>
117
+ export function isTruthy<T extends bigint>(value: T): value is Extract<T, bigint>
118
+ export function isTruthy<T extends null>(value: T): value is Extract<T, null>
119
+ export function isTruthy<T extends undefined>(value: T): value is Extract<T, undefined>
120
+ export function isTruthy<T extends string>(value: T): value is Extract<T, string>
121
+ export function isTruthy(value: unknown): value is true {
122
+ return !value
84
123
  }
85
124
 
86
- export function isBoolean<T>(value: T): value is Extract<T, boolean> {
125
+ export function isBoolean(value: unknown): value is boolean
126
+ export function isBoolean<T extends boolean>(value: T): value is Extract<T, boolean>
127
+ export function isBoolean(value: unknown): value is boolean {
87
128
  return typeof value === 'boolean'
88
129
  }
89
130
 
90
- export function isDateString<T>(value: T): value is Extract<T, string> {
131
+ export function isDateString(value: unknown): value is string
132
+ export function isDateString<T>(value: T): value is Extract<T, string>
133
+ export function isDateString(value: unknown): value is string {
91
134
  return isString(value) && !Number.isNaN(Date.parse(value))
92
135
  }
93
136
 
94
- export function isDate<T>(value: T): value is Extract<T, Date> {
137
+ export function isDate(value: unknown): value is Date
138
+ export function isDate<T>(value: T): value is Extract<T, Date>
139
+ export function isDate(value: unknown): value is Date {
95
140
  return value instanceof Date
96
141
  }
97
142
 
98
- export function isRegExp<T>(value: T): value is Extract<T, RegExp> {
143
+ export function isRegExp(value: unknown): value is RegExp
144
+ export function isRegExp<T extends RegExp>(value: T): value is Extract<T, RegExp>
145
+ export function isRegExp(value: unknown): value is RegExp {
99
146
  return value instanceof RegExp
100
147
  }
101
148
 
102
- export function isError<T>(value: T): value is Extract<T, Error> {
149
+ export function isError(value: unknown): value is Error
150
+ export function isError<T>(value: T): value is Extract<T, Error>
151
+ export function isError(value: unknown): value is Error {
103
152
  return value instanceof Error
104
153
  }
105
154
 
106
- export function isPromise<T>(value: T): value is Extract<T, Promise<unknown>> {
155
+ export function isPromise(value: unknown): value is Promise<unknown>
156
+ export function isPromise<T>(value: T): value is Extract<T, Promise<unknown>>
157
+ export function isPromise(value: unknown): value is Promise<unknown> {
107
158
  return value instanceof Promise
108
159
  }
109
160
 
110
- export function isPromiseLike<T>(value: T): value is Extract<T, Promise<unknown>> {
161
+ export function isPromiseLike(value: unknown): value is Promise<unknown>
162
+ export function isPromiseLike<T>(value: T): value is Extract<T, Promise<unknown>>
163
+ export function isPromiseLike(value: unknown): value is Promise<unknown> {
111
164
  return (
112
165
  typeof value === 'object'
113
166
  && value !== null
@@ -115,43 +168,56 @@ export function isPromiseLike<T>(value: T): value is Extract<T, Promise<unknown>
115
168
  )
116
169
  }
117
170
 
118
- export function isMap<K, V>(value: unknown | Map<K, V>): value is Map<K, V> {
171
+ export function isMap(value: unknown): value is Map<unknown, unknown>
172
+ export function isMap<K, V, T extends Map<K, V>>(value: T): value is Extract<T, Map<K, V>>
173
+ export function isMap(value: unknown): value is Map<unknown, unknown> {
119
174
  return value instanceof Map
120
175
  }
121
176
 
122
- // excludes classes not a class
123
- export function isPlainObject<T>(value: T): value is Extract<T, object> {
124
- return isObject(value) && value.constructor === Object
125
- }
126
-
127
- export function isArrayBufferView<T>(value: T): value is Extract<T, ArrayBufferView> {
177
+ export function isArrayBufferView(value: unknown): value is ArrayBufferView
178
+ export function isArrayBufferView<T extends ArrayBufferView>(value: T): value is Extract<T, ArrayBufferView>
179
+ export function isArrayBufferView(value: unknown): value is ArrayBufferView {
128
180
  return ArrayBuffer.isView(value)
129
181
  }
130
182
 
131
- export function isSet<T>(value: unknown | Set<T>): value is Extract<T, Set<T>> {
183
+ export function isSet(value: unknown): value is Set<unknown>
184
+ export function isSet<T extends Set<unknown>>(value: unknown | Set<T>): value is Extract<T, Set<unknown>>
185
+ export function isSet(value: unknown): value is Set<unknown> {
132
186
  return value instanceof Set
133
187
  }
134
188
 
135
- export function isWeakMap<K extends WeakKey, V>(value: unknown | WeakMap<K, V>): value is WeakMap<K, V> {
189
+ export function isWeakMap(value: unknown): value is WeakMap<WeakKey, unknown>
190
+ export function isWeakMap<K extends WeakKey, V, T extends WeakMap<K, V>>(value: T): value is Extract<T, WeakMap<K, V>>
191
+ export function isWeakMap(value: unknown): value is WeakMap<WeakKey, unknown> {
136
192
  return value instanceof WeakMap
137
193
  }
138
194
 
139
- export function isWeakSet<K extends WeakKey>(value: unknown | WeakSet<K>): value is WeakSet<K> {
195
+ export function isWeakSet(value: unknown): value is WeakSet<WeakKey>
196
+ export function isWeakSet<K extends WeakKey, T extends WeakSet<K>>(value: T): value is Extract<T, WeakSet<K>>
197
+ export function isWeakSet(value: unknown): value is WeakSet<WeakKey> {
140
198
  return value instanceof WeakSet
141
199
  }
142
200
 
143
- export function isArrayBuffer<T>(value: T): value is Extract<T, ArrayBuffer> {
201
+ export function isArrayBuffer(value: unknown): value is ArrayBuffer
202
+ export function isArrayBuffer<T extends ArrayBuffer>(value: T): value is Extract<T, ArrayBuffer>
203
+ export function isArrayBuffer(value: unknown): value is ArrayBuffer {
144
204
  return value instanceof ArrayBuffer
145
205
  }
146
206
 
147
- export function isDataView<T>(value: T): value is Extract<T, DataView> {
207
+ export function isDataView(value: unknown): value is DataView
208
+ export function isDataView<T>(value: T): value is Extract<T, DataView>
209
+ export function isDataView(value: unknown): value is DataView {
148
210
  return value instanceof DataView
149
211
  }
150
212
 
151
- export function isBlob<T>(value: T): value is Extract<T, Blob> {
213
+ export function isBlob(value: unknown): value is Blob
214
+ export function isBlob<T extends Blob>(value: T): value is Extract<T, Blob>
215
+ export function isBlob(value: unknown): value is Blob {
152
216
  return typeof Blob !== 'undefined' && value instanceof Blob
153
217
  }
154
218
 
155
- export function isFile<T>(value: T): value is Extract<T, File> {
219
+ export function isFile(value: unknown): value is File
220
+ export function isFile<T extends File>(value: T): value is Extract<T, File>
221
+ export function isFile(value: unknown): value is File {
156
222
  return typeof File !== 'undefined' && value instanceof File
157
223
  }