@xylabs/typeof 5.1.1 → 5.1.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.
@@ -252,4 +252,4 @@ export {
252
252
  typeOf,
253
253
  validateType
254
254
  };
255
- //# sourceMappingURL=index.mjs.map
255
+ //# sourceMappingURL=index.mjs.map
@@ -1 +1,7 @@
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\n/**\n * Extended typeof that distinguishes arrays from objects (unlike native `typeof`).\n * @param item - The value to check.\n * @returns The type of the item as a TypeOfTypes string.\n */\nexport const typeOf = <T>(item: T): TypeOfTypes => {\n return Array.isArray(item) ? 'array' : typeof item\n}\n","import { typeOf } from './typeOf.ts'\n\n/**\n * Invokes the callback only if the value is neither null nor undefined.\n * @param value - The value to check.\n * @param func - The callback to invoke with the value if it is defined.\n * @returns The value if defined, or undefined otherwise.\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\n/**\n * Invokes the callback if the value matches the specified type, with an optional additional predicate.\n * @param typeName - The expected type name to match against.\n * @param value - The value to check.\n * @param trueFunc - The callback to invoke if the type matches.\n * @param isFunc - Optional additional predicate that must also return true.\n * @returns The result of trueFunc if the type matches (and isFunc passes), or undefined.\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","/** A function type that accepts any arguments and returns unknown. */\nexport type AnyFunction = (...args: unknown[]) => unknown\n\n/** A union of valid object key types. */\nexport type RecordKey = string | number | symbol\n\n/** Type guard that checks whether a value is undefined. */\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\n/** Type guard that checks whether a value is not undefined. */\nexport function isDefined<T>(value: T): value is Exclude<T, undefined> {\n return !isUndefined(value)\n}\n\n/** Type guard that checks whether a value is null. */\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\n/** Type guard that checks whether a value is neither undefined nor null. */\nexport function isDefinedNotNull<T>(value: T): value is Exclude<T, undefined | null> {\n return !isUndefined(value) && !isNull(value)\n}\n\n/** Type guard that checks whether a value is undefined or null. */\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\n/** Type guard that checks whether a value is a bigint. */\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\n/** Type guard that checks whether a value is a string. */\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\n/** Type guard that checks whether a value is a number. */\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\n/** Type guard that checks whether a value is a plain object (not null and not an array). */\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\n/** Type guard that checks whether a value is an array. */\nexport function isArray(value: unknown): value is readonly unknown[]\nexport function isArray<T>(value: T): value is Extract<T, readonly unknown[]>\nexport function isArray(value: unknown): value is readonly unknown[] {\n return Array.isArray(value)\n}\n\n/** Type guard that checks whether a value is a function. */\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\n/** Type guard that checks whether a value is a symbol. */\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\n/** Type guard that checks whether a value is an object with no own keys. */\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\n/** Type guard that checks whether a value is an empty string. */\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\n/** Type guard that checks whether a value is an empty array. */\nexport function isEmptyArray(value: unknown): value is []\nexport function isEmptyArray<T extends unknown[]>(value: T): value is Extract<T, unknown[]>\nexport function isEmptyArray(value: unknown): value is [] {\n return isArray(value) && value.length === 0\n}\n\n/** Type guard that checks whether a value is a non-empty array. */\nexport function isPopulatedArray(value: unknown): value is readonly unknown[]\nexport function isPopulatedArray<T extends unknown[]>(value: T): value is Extract<T, readonly unknown[]>\nexport function isPopulatedArray(value: unknown): value is readonly unknown[] {\n return isArray(value) && value.length > 0\n}\n\n/** Type guard that checks whether a value is empty (empty string, empty array, or empty object). */\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 unknown[]>(value: T): value is Extract<T, never[]>\nexport function isEmpty<T>(value: unknown): value is T {\n return isEmptyString(value) || isEmptyArray(value) || isEmptyObject(value)\n}\n\n/** Type guard that checks whether a value is falsy (0, null, undefined, false, '', or 0n). */\nexport function isFalsy<T>(value: T): value is Extract<T, 0 | null | undefined | false | '' | 0n>\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<T>(value: T): value is T {\n return !value\n}\n\n/** Type guard that checks whether a value is truthy (not 0, null, undefined, false, '', or 0n). */\nexport function isTruthy<T>(value: T): value is Exclude<T, 0 | null | undefined | false | '' | 0n>\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<T>(value: T): value is T {\n return !!value\n}\n\n/** Type guard that checks whether a value is a boolean. */\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\n/** Type guard that checks whether a value is a string that can be parsed as a valid date. */\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\n/** Type guard that checks whether a value is a Date instance. */\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\n/** Type guard that checks whether a value is a RegExp instance. */\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\n/** Type guard that checks whether a value is an Error instance. */\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\n/** Type guard that checks whether a value is a Promise instance. */\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\n/** Type guard that checks whether a value is promise-like (has a `then` method). */\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\n/** Type guard that checks whether a value is a Map instance. */\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\n/** Type guard that checks whether a value is an ArrayBufferView (e.g., TypedArray or DataView). */\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\n/** Type guard that checks whether a value is a Set instance. */\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\n/** Type guard that checks whether a value is a WeakMap instance. */\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\n/** Type guard that checks whether a value is a WeakSet instance. */\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\n/** Type guard that checks whether a value is a DataView instance. */\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\n/** Type guard that checks whether a value is a Blob instance. */\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\n/** Type guard that checks whether a value is a File instance. */\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\n/**\n * Checks whether a value matches the expected field type, with correct handling for arrays and nulls.\n * @param value - The value to check.\n * @param expectedType - The expected type string.\n * @returns True if the value matches the expected type.\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/** A value that can appear in a typed object tree (primitives, objects, arrays, functions, and symbols). */\n// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\nexport type TypedValue = bigint | string | number | boolean | null | TypedObject | TypedArray | Function | symbol | undefined\n\n/** A valid key for a typed object. Defaults to string | number | symbol unless narrowed by T. */\nexport type TypedKey<T extends string | void = void> = T extends string ? T : string | number | symbol\n\n/** An object whose keys are TypedKey and whose values are TypedValue. */\nexport type TypedObject = { [key: TypedKey]: TypedValue } | object\n\n/** An array of TypedValue elements. */\nexport type TypedArray = TypedValue[]\n\n/**\n * Type guard that checks whether a value is a valid TypedKey (string, bigint, number, or symbol).\n * @param value - The value to check.\n * @returns True if the value is a valid TypedKey.\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\n/**\n * Type guard that checks whether a value is a valid TypedValue.\n * @param value - The value to check.\n * @returns True if the value is a string, number, boolean, null, TypedObject, or TypedArray.\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\n/**\n * Type guard that checks whether a value is a TypedArray (an array where every element is a TypedValue).\n * @param value - The value to check.\n * @returns True if the value is an array of TypedValue elements.\n */\nexport const isTypedArray = (value: unknown): value is TypedArray => {\n return Array.isArray(value) && !value.some(item => !isTypedValue(item))\n}\n\n/**\n * Type guard that checks whether a key-value pair has a valid TypedKey and TypedValue.\n * @param pair - A tuple of [key, value] to validate.\n * @returns True if the key is a TypedKey and the value is a TypedValue.\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\n/**\n * Type guard that checks whether a value is a TypedObject (an object with TypedKey keys and TypedValue values).\n * @param value - The value to check.\n * @returns True if the value is a valid TypedObject.\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\n/**\n * Validates that a value matches the expected type, returning the value and any errors.\n * @param typeName - The expected type name.\n * @param value - The value to validate.\n * @param optional - If true, undefined values are accepted without error.\n * @returns A tuple of [value or undefined, array of errors].\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
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/typeOf.ts", "../../src/ifDefined.ts", "../../src/ifTypeOf.ts", "../../src/is.ts", "../../src/isType.ts", "../../src/Typed.ts", "../../src/validateType.ts"],
4
+ "sourcesContent": ["import type { TypeOfTypes } from './TypeOfTypes.ts'\n\n/**\n * Extended typeof that distinguishes arrays from objects (unlike native `typeof`).\n * @param item - The value to check.\n * @returns The type of the item as a TypeOfTypes string.\n */\nexport const typeOf = <T>(item: T): TypeOfTypes => {\n return Array.isArray(item) ? 'array' : typeof item\n}\n", "import { typeOf } from './typeOf.ts'\n\n/**\n * Invokes the callback only if the value is neither null nor undefined.\n * @param value - The value to check.\n * @param func - The callback to invoke with the value if it is defined.\n * @returns The value if defined, or undefined otherwise.\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\n/**\n * Invokes the callback if the value matches the specified type, with an optional additional predicate.\n * @param typeName - The expected type name to match against.\n * @param value - The value to check.\n * @param trueFunc - The callback to invoke if the type matches.\n * @param isFunc - Optional additional predicate that must also return true.\n * @returns The result of trueFunc if the type matches (and isFunc passes), or undefined.\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", "/** A function type that accepts any arguments and returns unknown. */\nexport type AnyFunction = (...args: unknown[]) => unknown\n\n/** A union of valid object key types. */\nexport type RecordKey = string | number | symbol\n\n/** Type guard that checks whether a value is undefined. */\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\n/** Type guard that checks whether a value is not undefined. */\nexport function isDefined<T>(value: T): value is Exclude<T, undefined> {\n return !isUndefined(value)\n}\n\n/** Type guard that checks whether a value is null. */\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\n/** Type guard that checks whether a value is neither undefined nor null. */\nexport function isDefinedNotNull<T>(value: T): value is Exclude<T, undefined | null> {\n return !isUndefined(value) && !isNull(value)\n}\n\n/** Type guard that checks whether a value is undefined or null. */\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\n/** Type guard that checks whether a value is a bigint. */\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\n/** Type guard that checks whether a value is a string. */\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\n/** Type guard that checks whether a value is a number. */\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\n/** Type guard that checks whether a value is a plain object (not null and not an array). */\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\n/** Type guard that checks whether a value is an array. */\nexport function isArray(value: unknown): value is readonly unknown[]\nexport function isArray<T>(value: T): value is Extract<T, readonly unknown[]>\nexport function isArray(value: unknown): value is readonly unknown[] {\n return Array.isArray(value)\n}\n\n/** Type guard that checks whether a value is a function. */\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\n/** Type guard that checks whether a value is a symbol. */\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\n/** Type guard that checks whether a value is an object with no own keys. */\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\n/** Type guard that checks whether a value is an empty string. */\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\n/** Type guard that checks whether a value is an empty array. */\nexport function isEmptyArray(value: unknown): value is []\nexport function isEmptyArray<T extends unknown[]>(value: T): value is Extract<T, unknown[]>\nexport function isEmptyArray(value: unknown): value is [] {\n return isArray(value) && value.length === 0\n}\n\n/** Type guard that checks whether a value is a non-empty array. */\nexport function isPopulatedArray(value: unknown): value is readonly unknown[]\nexport function isPopulatedArray<T extends unknown[]>(value: T): value is Extract<T, readonly unknown[]>\nexport function isPopulatedArray(value: unknown): value is readonly unknown[] {\n return isArray(value) && value.length > 0\n}\n\n/** Type guard that checks whether a value is empty (empty string, empty array, or empty object). */\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 unknown[]>(value: T): value is Extract<T, never[]>\nexport function isEmpty<T>(value: unknown): value is T {\n return isEmptyString(value) || isEmptyArray(value) || isEmptyObject(value)\n}\n\n/** Type guard that checks whether a value is falsy (0, null, undefined, false, '', or 0n). */\nexport function isFalsy<T>(value: T): value is Extract<T, 0 | null | undefined | false | '' | 0n>\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<T>(value: T): value is T {\n return !value\n}\n\n/** Type guard that checks whether a value is truthy (not 0, null, undefined, false, '', or 0n). */\nexport function isTruthy<T>(value: T): value is Exclude<T, 0 | null | undefined | false | '' | 0n>\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<T>(value: T): value is T {\n return !!value\n}\n\n/** Type guard that checks whether a value is a boolean. */\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\n/** Type guard that checks whether a value is a string that can be parsed as a valid date. */\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\n/** Type guard that checks whether a value is a Date instance. */\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\n/** Type guard that checks whether a value is a RegExp instance. */\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\n/** Type guard that checks whether a value is an Error instance. */\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\n/** Type guard that checks whether a value is a Promise instance. */\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\n/** Type guard that checks whether a value is promise-like (has a `then` method). */\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\n/** Type guard that checks whether a value is a Map instance. */\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\n/** Type guard that checks whether a value is an ArrayBufferView (e.g., TypedArray or DataView). */\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\n/** Type guard that checks whether a value is a Set instance. */\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\n/** Type guard that checks whether a value is a WeakMap instance. */\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\n/** Type guard that checks whether a value is a WeakSet instance. */\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\n/** Type guard that checks whether a value is a DataView instance. */\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\n/** Type guard that checks whether a value is a Blob instance. */\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\n/** Type guard that checks whether a value is a File instance. */\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\n/**\n * Checks whether a value matches the expected field type, with correct handling for arrays and nulls.\n * @param value - The value to check.\n * @param expectedType - The expected type string.\n * @returns True if the value matches the expected type.\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/** A value that can appear in a typed object tree (primitives, objects, arrays, functions, and symbols). */\n// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\nexport type TypedValue = bigint | string | number | boolean | null | TypedObject | TypedArray | Function | symbol | undefined\n\n/** A valid key for a typed object. Defaults to string | number | symbol unless narrowed by T. */\nexport type TypedKey<T extends string | void = void> = T extends string ? T : string | number | symbol\n\n/** An object whose keys are TypedKey and whose values are TypedValue. */\nexport type TypedObject = { [key: TypedKey]: TypedValue } | object\n\n/** An array of TypedValue elements. */\nexport type TypedArray = TypedValue[]\n\n/**\n * Type guard that checks whether a value is a valid TypedKey (string, bigint, number, or symbol).\n * @param value - The value to check.\n * @returns True if the value is a valid TypedKey.\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\n/**\n * Type guard that checks whether a value is a valid TypedValue.\n * @param value - The value to check.\n * @returns True if the value is a string, number, boolean, null, TypedObject, or TypedArray.\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\n/**\n * Type guard that checks whether a value is a TypedArray (an array where every element is a TypedValue).\n * @param value - The value to check.\n * @returns True if the value is an array of TypedValue elements.\n */\nexport const isTypedArray = (value: unknown): value is TypedArray => {\n return Array.isArray(value) && !value.some(item => !isTypedValue(item))\n}\n\n/**\n * Type guard that checks whether a key-value pair has a valid TypedKey and TypedValue.\n * @param pair - A tuple of [key, value] to validate.\n * @returns True if the key is a TypedKey and the value is a TypedValue.\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\n/**\n * Type guard that checks whether a value is a TypedObject (an object with TypedKey keys and TypedValue values).\n * @param value - The value to check.\n * @returns True if the value is a valid TypedObject.\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\n/**\n * Validates that a value matches the expected type, returning the value and any errors.\n * @param typeName - The expected type name.\n * @param value - The value to validate.\n * @param optional - If true, undefined values are accepted without error.\n * @returns A tuple of [value or undefined, array of errors].\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"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xylabs/typeof",
3
- "version": "5.1.1",
3
+ "version": "5.1.3",
4
4
  "description": "Base functionality used throughout XY Labs TypeScript/JavaScript libraries",
5
5
  "keywords": [
6
6
  "typeof",
@@ -41,12 +41,13 @@
41
41
  "README.md"
42
42
  ],
43
43
  "devDependencies": {
44
- "@xylabs/toolchain": "~7.13.2",
45
- "@xylabs/tsconfig": "~7.13.2",
44
+ "@types/node": "^25.8.0",
45
+ "@xylabs/toolchain": "~8.0.4",
46
+ "@xylabs/tsconfig": "~8.0.4",
46
47
  "eslint": "^10.3.0",
47
- "typescript": "^5.9.3",
48
- "vite": "^8.0.10",
49
- "vitest": "^4.1.5"
48
+ "typescript": "^6.0.3",
49
+ "vite": "^8.0.13",
50
+ "vitest": "^4.1.6"
50
51
  },
51
52
  "engines": {
52
53
  "node": ">=18"