is-what
Advanced tools
Comparing version 4.1.16 to 5.0.0
@@ -1,380 +0,41 @@ | ||
/** | ||
* Returns the object type of the given payload | ||
* | ||
* @param {any} payload | ||
* @returns {string} | ||
*/ | ||
declare function getType(payload: any): string; | ||
type PlainObject = Record<string | number | symbol, any>; | ||
/** | ||
* Returns whether the payload is a plain JavaScript object (excluding special classes or objects | ||
* with other prototypes) | ||
* | ||
* @param {any} payload | ||
* @returns {payload is PlainObject} | ||
*/ | ||
declare function isPlainObject(payload: any): payload is PlainObject; | ||
/** | ||
* Returns whether the payload is an any kind of object (including special classes or objects with | ||
* different prototypes) | ||
* | ||
* @param {any} payload | ||
* @returns {payload is PlainObject} | ||
*/ | ||
declare function isAnyObject(payload: any): payload is PlainObject; | ||
/** | ||
* Returns whether the payload is an array | ||
* | ||
* @param {any} payload | ||
* @returns {payload is any[]} | ||
*/ | ||
declare function isArray(payload: any): payload is any[]; | ||
/** | ||
* Returns whether the payload is a Blob | ||
* | ||
* @param {any} payload | ||
* @returns {payload is Blob} | ||
*/ | ||
declare function isBlob(payload: any): payload is Blob; | ||
/** | ||
* Returns whether the payload is a boolean | ||
* | ||
* @param {any} payload | ||
* @returns {payload is boolean} | ||
*/ | ||
declare function isBoolean(payload: any): payload is boolean; | ||
/** | ||
* Returns whether the payload is a Date, and that the date is valid | ||
* | ||
* @param {any} payload | ||
* @returns {payload is Date} | ||
*/ | ||
declare function isDate(payload: any): payload is Date; | ||
/** | ||
* Returns whether the payload is a an empty array | ||
* | ||
* @param {any} payload | ||
* @returns {payload is []} | ||
*/ | ||
declare function isEmptyArray(payload: any): payload is []; | ||
/** | ||
* Returns whether the payload is a an empty object (excluding special classes or objects with other | ||
* prototypes) | ||
* | ||
* @param {any} payload | ||
* @returns {payload is { [K in any]: never }} | ||
*/ | ||
declare function isEmptyObject(payload: any): payload is { | ||
[K in any]: never; | ||
}; | ||
/** | ||
* Returns whether the payload is '' | ||
* | ||
* @param {any} payload | ||
* @returns {payload is string} | ||
*/ | ||
declare function isEmptyString(payload: any): payload is string; | ||
/** | ||
* Returns whether the payload is an Error | ||
* | ||
* @param {any} payload | ||
* @returns {payload is Error} | ||
*/ | ||
declare function isError(payload: any): payload is Error; | ||
/** | ||
* Returns whether the payload is a File | ||
* | ||
* @param {any} payload | ||
* @returns {payload is File} | ||
*/ | ||
declare function isFile(payload: any): payload is File; | ||
/** | ||
* Returns whether the payload is a an array with at least 1 item | ||
* | ||
* @param {any} payload | ||
* @returns {payload is any[]} | ||
*/ | ||
declare function isFullArray(payload: any): payload is any[]; | ||
/** | ||
* Returns whether the payload is a an empty object (excluding special classes or objects with other | ||
* prototypes) | ||
* | ||
* @param {any} payload | ||
* @returns {payload is PlainObject} | ||
*/ | ||
declare function isFullObject(payload: any): payload is PlainObject; | ||
/** | ||
* Returns whether the payload is a string, BUT returns false for '' | ||
* | ||
* @param {any} payload | ||
* @returns {payload is string} | ||
*/ | ||
declare function isFullString(payload: any): payload is string; | ||
type AnyFunction = (...args: any[]) => any; | ||
/** | ||
* Returns whether the payload is a function (regular or async) | ||
* | ||
* @param {any} payload | ||
* @returns {payload is AnyFunction} | ||
*/ | ||
declare function isFunction(payload: any): payload is AnyFunction; | ||
type AnyClass = new (...args: any[]) => any; | ||
/** | ||
* Does a generic check to check that the given payload is of a given type. In cases like Number, it | ||
* will return true for NaN as NaN is a Number (thanks javascript!); It will, however, differentiate | ||
* between object and null | ||
* | ||
* @template T | ||
* @param {any} payload | ||
* @param {T} type | ||
* @returns {payload is T} | ||
* @throws {TypeError} Will throw type error if type is an invalid type | ||
*/ | ||
declare function isType<T extends AnyFunction | AnyClass>(payload: any, type: T): payload is T; | ||
type GlobalClassName = { | ||
[K in keyof typeof globalThis]: (typeof globalThis)[K] extends AnyClass ? K : never; | ||
}[keyof typeof globalThis]; | ||
/** | ||
* Checks if a value is an instance of a class or a class name. Useful when you want to check if a | ||
* value is an instance of a class that may not be defined in the current scope. For example, if you | ||
* want to check if a value is an `OffscreenCanvas` instance, you might not want to do the song and | ||
* dance of using `typeof OffscreenCanvas !== 'undefined'` and then shimming `OffscreenCanvas` if | ||
* the types aren't around. | ||
* | ||
* @example | ||
* if (isInstanceOf(value, 'OffscreenCanvas')) { | ||
* // value is an OffscreenCanvas | ||
* } | ||
* | ||
* @param value The value to recursively check | ||
* @param class_ A string or class that the value should be an instance of | ||
*/ | ||
declare function isInstanceOf<T extends AnyClass>(value: unknown, class_: T): value is T; | ||
declare function isInstanceOf<K extends GlobalClassName>(value: unknown, className: K): value is (typeof globalThis)[K]; | ||
declare function isInstanceOf(value: unknown, className: string): value is object; | ||
/** | ||
* Returns whether the payload is a Map | ||
* | ||
* @param {any} payload | ||
* @returns {payload is Map<any, any>} | ||
*/ | ||
declare function isMap(payload: any): payload is Map<any, any>; | ||
/** | ||
* Returns whether the payload is literally the value `NaN` (it's `NaN` and also a `number`) | ||
* | ||
* @param {any} payload | ||
* @returns {payload is typeof NaN} | ||
*/ | ||
declare function isNaNValue(payload: any): payload is typeof NaN; | ||
/** | ||
* Returns whether the payload is a negative number (but not 0) | ||
* | ||
* @param {any} payload | ||
* @returns {payload is number} | ||
*/ | ||
declare function isNegativeNumber(payload: any): payload is number; | ||
/** | ||
* Returns whether the payload is null | ||
* | ||
* @param {any} payload | ||
* @returns {payload is null} | ||
*/ | ||
declare function isNull(payload: any): payload is null; | ||
/** | ||
* Returns true whether the payload is null or undefined | ||
* | ||
* @param {any} payload | ||
* @returns {(payload is null | undefined)} | ||
*/ | ||
declare const isNullOrUndefined: (payload: any) => payload is null | undefined; | ||
/** | ||
* Returns whether the payload is a number (but not NaN) | ||
* | ||
* This will return `false` for `NaN`!! | ||
* | ||
* @param {any} payload | ||
* @returns {payload is number} | ||
*/ | ||
declare function isNumber(payload: any): payload is number; | ||
/** | ||
* Returns whether the payload is a plain JavaScript object (excluding special classes or objects | ||
* with other prototypes) | ||
* | ||
* @param {any} payload | ||
* @returns {payload is PlainObject} | ||
*/ | ||
declare function isObject(payload: any): payload is PlainObject; | ||
/** | ||
* Returns whether the payload is an object like a type passed in < > | ||
* | ||
* Usage: isObjectLike<{id: any}>(payload) // will make sure it's an object and has an `id` prop. | ||
* | ||
* @template T This must be passed in < > | ||
* @param {any} payload | ||
* @returns {payload is T} | ||
*/ | ||
declare function isObjectLike<T extends PlainObject>(payload: any): payload is T; | ||
type TypeGuard<A, B extends A> = (payload: A) => payload is B; | ||
/** | ||
* A factory function that creates a function to check if the payload is one of the given types. | ||
* | ||
* @example | ||
* import { isOneOf, isNull, isUndefined } from 'is-what' | ||
* | ||
* const isNullOrUndefined = isOneOf(isNull, isUndefined) | ||
* | ||
* isNullOrUndefined(null) // true | ||
* isNullOrUndefined(undefined) // true | ||
* isNullOrUndefined(123) // false | ||
*/ | ||
declare function isOneOf<A, B extends A, C extends A>(a: TypeGuard<A, B>, b: TypeGuard<A, C>): TypeGuard<A, B | C>; | ||
/** | ||
* A factory function that creates a function to check if the payload is one of the given types. | ||
* | ||
* @example | ||
* import { isOneOf, isNull, isUndefined } from 'is-what' | ||
* | ||
* const isNullOrUndefined = isOneOf(isNull, isUndefined) | ||
* | ||
* isNullOrUndefined(null) // true | ||
* isNullOrUndefined(undefined) // true | ||
* isNullOrUndefined(123) // false | ||
*/ | ||
declare function isOneOf<A, B extends A, C extends A, D extends A>(a: TypeGuard<A, B>, b: TypeGuard<A, C>, c: TypeGuard<A, D>): TypeGuard<A, B | C | D>; | ||
/** | ||
* A factory function that creates a function to check if the payload is one of the given types. | ||
* | ||
* @example | ||
* import { isOneOf, isNull, isUndefined } from 'is-what' | ||
* | ||
* const isNullOrUndefined = isOneOf(isNull, isUndefined) | ||
* | ||
* isNullOrUndefined(null) // true | ||
* isNullOrUndefined(undefined) // true | ||
* isNullOrUndefined(123) // false | ||
*/ | ||
declare function isOneOf<A, B extends A, C extends A, D extends A, E extends A>(a: TypeGuard<A, B>, b: TypeGuard<A, C>, c: TypeGuard<A, D>, d: TypeGuard<A, E>): TypeGuard<A, B | C | D | E>; | ||
/** | ||
* A factory function that creates a function to check if the payload is one of the given types. | ||
* | ||
* @example | ||
* import { isOneOf, isNull, isUndefined } from 'is-what' | ||
* | ||
* const isNullOrUndefined = isOneOf(isNull, isUndefined) | ||
* | ||
* isNullOrUndefined(null) // true | ||
* isNullOrUndefined(undefined) // true | ||
* isNullOrUndefined(123) // false | ||
*/ | ||
declare function isOneOf<A, B extends A, C extends A, D extends A, E extends A, F extends A>(a: TypeGuard<A, B>, b: TypeGuard<A, C>, c: TypeGuard<A, D>, d: TypeGuard<A, E>, e: TypeGuard<A, F>): TypeGuard<A, B | C | D | E | F>; | ||
/** | ||
* Returns whether the payload is a positive number (but not 0) | ||
* | ||
* @param {any} payload | ||
* @returns {payload is number} | ||
*/ | ||
declare function isPositiveNumber(payload: any): payload is number; | ||
/** | ||
* Returns whether the payload is a primitive type (eg. Boolean | Null | Undefined | Number | String | ||
* | Symbol) | ||
* | ||
* @param {any} payload | ||
* @returns {(payload is boolean | null | undefined | number | string | symbol)} | ||
*/ | ||
declare function isPrimitive(payload: any): payload is boolean | null | undefined | number | string | symbol; | ||
/** | ||
* Returns whether the payload is a Promise | ||
* | ||
* @param {any} payload | ||
* @returns {payload is Promise<any>} | ||
*/ | ||
declare function isPromise(payload: any): payload is Promise<any>; | ||
/** | ||
* Returns whether the payload is a regular expression (RegExp) | ||
* | ||
* @param {any} payload | ||
* @returns {payload is RegExp} | ||
*/ | ||
declare function isRegExp(payload: any): payload is RegExp; | ||
/** | ||
* Returns whether the payload is a Set | ||
* | ||
* @param {any} payload | ||
* @returns {payload is Set<any>} | ||
*/ | ||
declare function isSet(payload: any): payload is Set<any>; | ||
/** | ||
* Returns whether the payload is a string | ||
* | ||
* @param {any} payload | ||
* @returns {payload is string} | ||
*/ | ||
declare function isString(payload: any): payload is string; | ||
/** | ||
* Returns whether the payload is a Symbol | ||
* | ||
* @param {any} payload | ||
* @returns {payload is symbol} | ||
*/ | ||
declare function isSymbol(payload: any): payload is symbol; | ||
/** | ||
* Returns whether the payload is undefined | ||
* | ||
* @param {any} payload | ||
* @returns {payload is undefined} | ||
*/ | ||
declare function isUndefined(payload: any): payload is undefined; | ||
/** | ||
* Returns whether the payload is a WeakMap | ||
* | ||
* @param {any} payload | ||
* @returns {payload is WeakMap<any, any>} | ||
*/ | ||
declare function isWeakMap(payload: any): payload is WeakMap<any, any>; | ||
/** | ||
* Returns whether the payload is a WeakSet | ||
* | ||
* @param {any} payload | ||
* @returns {payload is WeakSet<any>} | ||
*/ | ||
declare function isWeakSet(payload: any): payload is WeakSet<any>; | ||
type AnyAsyncFunction = (...args: any[]) => Promise<any>; | ||
export { AnyAsyncFunction, AnyClass, AnyFunction, PlainObject, getType, isAnyObject, isArray, isBlob, isBoolean, isDate, isEmptyArray, isEmptyObject, isEmptyString, isError, isFile, isFullArray, isFullObject, isFullString, isFunction, isInstanceOf, isMap, isNaNValue, isNegativeNumber, isNull, isNullOrUndefined, isNumber, isObject, isObjectLike, isOneOf, isPlainObject, isPositiveNumber, isPrimitive, isPromise, isRegExp, isSet, isString, isSymbol, isType, isUndefined, isWeakMap, isWeakSet }; | ||
export type AnyAsyncFunction = (...args: unknown[]) => Promise<unknown>; | ||
export { getType } from './getType.js'; | ||
export { isAnyObject } from './isAnyObject.js'; | ||
export { isArray } from './isArray.js'; | ||
export { isBlob } from './isBlob.js'; | ||
export { isBoolean } from './isBoolean.js'; | ||
export { isDate } from './isDate.js'; | ||
export { isEmptyArray } from './isEmptyArray.js'; | ||
export { isEmptyObject } from './isEmptyObject.js'; | ||
export { isEmptyString } from './isEmptyString.js'; | ||
export { isError } from './isError.js'; | ||
export { isFile } from './isFile.js'; | ||
export { isFullArray } from './isFullArray.js'; | ||
export { isFullObject } from './isFullObject.js'; | ||
export { isFullString } from './isFullString.js'; | ||
export { isFunction } from './isFunction.js'; | ||
export type { AnyFunction } from './isFunction.js'; | ||
export { isInstanceOf } from './isInstanceOf.js'; | ||
export { isMap } from './isMap.js'; | ||
export { isNaNValue } from './isNaNValue.js'; | ||
export { isNegativeNumber } from './isNegativeNumber.js'; | ||
export { isNull } from './isNull.js'; | ||
export { isNullOrUndefined } from './isNullOrUndefined.js'; | ||
export { isNumber } from './isNumber.js'; | ||
export { isObject } from './isObject.js'; | ||
export { isObjectLike } from './isObjectLike.js'; | ||
export { isOneOf } from './isOneOf.js'; | ||
export { isPlainObject } from './isPlainObject.js'; | ||
export type { PlainObject } from './isPlainObject.js'; | ||
export { isPositiveNumber } from './isPositiveNumber.js'; | ||
export { isPrimitive } from './isPrimitive.js'; | ||
export { isPromise } from './isPromise.js'; | ||
export { isRegExp } from './isRegExp.js'; | ||
export { isSet } from './isSet.js'; | ||
export { isString } from './isString.js'; | ||
export { isSymbol } from './isSymbol.js'; | ||
export { isType } from './isType.js'; | ||
export type { AnyClass } from './isType.js'; | ||
export { isUndefined } from './isUndefined.js'; | ||
export { isWeakMap } from './isWeakMap.js'; | ||
export { isWeakSet } from './isWeakSet.js'; |
@@ -1,171 +0,37 @@ | ||
function getType(payload) { | ||
return Object.prototype.toString.call(payload).slice(8, -1); | ||
} | ||
function isAnyObject(payload) { | ||
return getType(payload) === "Object"; | ||
} | ||
function isArray(payload) { | ||
return getType(payload) === "Array"; | ||
} | ||
function isBlob(payload) { | ||
return getType(payload) === "Blob"; | ||
} | ||
function isBoolean(payload) { | ||
return getType(payload) === "Boolean"; | ||
} | ||
function isDate(payload) { | ||
return getType(payload) === "Date" && !isNaN(payload); | ||
} | ||
function isEmptyArray(payload) { | ||
return isArray(payload) && payload.length === 0; | ||
} | ||
function isPlainObject(payload) { | ||
if (getType(payload) !== "Object") | ||
return false; | ||
const prototype = Object.getPrototypeOf(payload); | ||
return !!prototype && prototype.constructor === Object && prototype === Object.prototype; | ||
} | ||
function isEmptyObject(payload) { | ||
return isPlainObject(payload) && Object.keys(payload).length === 0; | ||
} | ||
function isEmptyString(payload) { | ||
return payload === ""; | ||
} | ||
function isError(payload) { | ||
return getType(payload) === "Error" || payload instanceof Error; | ||
} | ||
function isFile(payload) { | ||
return getType(payload) === "File"; | ||
} | ||
function isFullArray(payload) { | ||
return isArray(payload) && payload.length > 0; | ||
} | ||
function isFullObject(payload) { | ||
return isPlainObject(payload) && Object.keys(payload).length > 0; | ||
} | ||
function isString(payload) { | ||
return getType(payload) === "String"; | ||
} | ||
function isFullString(payload) { | ||
return isString(payload) && payload !== ""; | ||
} | ||
function isFunction(payload) { | ||
return typeof payload === "function"; | ||
} | ||
function isType(payload, type) { | ||
if (!(type instanceof Function)) { | ||
throw new TypeError("Type must be a function"); | ||
} | ||
if (!Object.prototype.hasOwnProperty.call(type, "prototype")) { | ||
throw new TypeError("Type is not a class"); | ||
} | ||
const name = type.name; | ||
return getType(payload) === name || Boolean(payload && payload.constructor === type); | ||
} | ||
function isInstanceOf(value, classOrClassName) { | ||
if (typeof classOrClassName === "function") { | ||
for (let p = value; p; p = Object.getPrototypeOf(p)) { | ||
if (isType(p, classOrClassName)) { | ||
return true; | ||
} | ||
} | ||
return false; | ||
} else { | ||
for (let p = value; p; p = Object.getPrototypeOf(p)) { | ||
if (getType(p) === classOrClassName) { | ||
return true; | ||
} | ||
} | ||
return false; | ||
} | ||
} | ||
function isMap(payload) { | ||
return getType(payload) === "Map"; | ||
} | ||
function isNaNValue(payload) { | ||
return getType(payload) === "Number" && isNaN(payload); | ||
} | ||
function isNumber(payload) { | ||
return getType(payload) === "Number" && !isNaN(payload); | ||
} | ||
function isNegativeNumber(payload) { | ||
return isNumber(payload) && payload < 0; | ||
} | ||
function isNull(payload) { | ||
return getType(payload) === "Null"; | ||
} | ||
function isOneOf(a, b, c, d, e) { | ||
return (value) => a(value) || b(value) || !!c && c(value) || !!d && d(value) || !!e && e(value); | ||
} | ||
function isUndefined(payload) { | ||
return getType(payload) === "Undefined"; | ||
} | ||
const isNullOrUndefined = isOneOf(isNull, isUndefined); | ||
function isObject(payload) { | ||
return isPlainObject(payload); | ||
} | ||
function isObjectLike(payload) { | ||
return isAnyObject(payload); | ||
} | ||
function isPositiveNumber(payload) { | ||
return isNumber(payload) && payload > 0; | ||
} | ||
function isSymbol(payload) { | ||
return getType(payload) === "Symbol"; | ||
} | ||
function isPrimitive(payload) { | ||
return isBoolean(payload) || isNull(payload) || isUndefined(payload) || isNumber(payload) || isString(payload) || isSymbol(payload); | ||
} | ||
function isPromise(payload) { | ||
return getType(payload) === "Promise"; | ||
} | ||
function isRegExp(payload) { | ||
return getType(payload) === "RegExp"; | ||
} | ||
function isSet(payload) { | ||
return getType(payload) === "Set"; | ||
} | ||
function isWeakMap(payload) { | ||
return getType(payload) === "WeakMap"; | ||
} | ||
function isWeakSet(payload) { | ||
return getType(payload) === "WeakSet"; | ||
} | ||
export { getType, isAnyObject, isArray, isBlob, isBoolean, isDate, isEmptyArray, isEmptyObject, isEmptyString, isError, isFile, isFullArray, isFullObject, isFullString, isFunction, isInstanceOf, isMap, isNaNValue, isNegativeNumber, isNull, isNullOrUndefined, isNumber, isObject, isObjectLike, isOneOf, isPlainObject, isPositiveNumber, isPrimitive, isPromise, isRegExp, isSet, isString, isSymbol, isType, isUndefined, isWeakMap, isWeakSet }; | ||
export { getType } from './getType.js'; | ||
export { isAnyObject } from './isAnyObject.js'; | ||
export { isArray } from './isArray.js'; | ||
export { isBlob } from './isBlob.js'; | ||
export { isBoolean } from './isBoolean.js'; | ||
export { isDate } from './isDate.js'; | ||
export { isEmptyArray } from './isEmptyArray.js'; | ||
export { isEmptyObject } from './isEmptyObject.js'; | ||
export { isEmptyString } from './isEmptyString.js'; | ||
export { isError } from './isError.js'; | ||
export { isFile } from './isFile.js'; | ||
export { isFullArray } from './isFullArray.js'; | ||
export { isFullObject } from './isFullObject.js'; | ||
export { isFullString } from './isFullString.js'; | ||
export { isFunction } from './isFunction.js'; | ||
export { isInstanceOf } from './isInstanceOf.js'; | ||
export { isMap } from './isMap.js'; | ||
export { isNaNValue } from './isNaNValue.js'; | ||
export { isNegativeNumber } from './isNegativeNumber.js'; | ||
export { isNull } from './isNull.js'; | ||
export { isNullOrUndefined } from './isNullOrUndefined.js'; | ||
export { isNumber } from './isNumber.js'; | ||
export { isObject } from './isObject.js'; | ||
export { isObjectLike } from './isObjectLike.js'; | ||
export { isOneOf } from './isOneOf.js'; | ||
export { isPlainObject } from './isPlainObject.js'; | ||
export { isPositiveNumber } from './isPositiveNumber.js'; | ||
export { isPrimitive } from './isPrimitive.js'; | ||
export { isPromise } from './isPromise.js'; | ||
export { isRegExp } from './isRegExp.js'; | ||
export { isSet } from './isSet.js'; | ||
export { isString } from './isString.js'; | ||
export { isSymbol } from './isSymbol.js'; | ||
export { isType } from './isType.js'; | ||
export { isUndefined } from './isUndefined.js'; | ||
export { isWeakMap } from './isWeakMap.js'; | ||
export { isWeakSet } from './isWeakSet.js'; |
{ | ||
"name": "is-what", | ||
"version": "4.1.16", | ||
"version": "5.0.0", | ||
"description": "JS type check (TypeScript supported) functions like `isPlainObject() isArray()` etc. A simple & small integration.", | ||
"type": "module", | ||
"sideEffects": false, | ||
"types": "./dist/index.d.ts", | ||
"module": "./dist/index.js", | ||
"main": "./dist/index.js", | ||
"exports": { | ||
".": { | ||
"require": { | ||
"types": "./dist/cjs/index.d.cts", | ||
"default": "./dist/cjs/index.cjs" | ||
}, | ||
"import": { | ||
"types": "./dist/index.d.ts", | ||
"default": "./dist/index.js" | ||
} | ||
} | ||
".": "./dist/index.js", | ||
"./*": "./dist/*" | ||
}, | ||
@@ -26,10 +15,10 @@ "files": [ | ||
"engines": { | ||
"node": ">=12.13" | ||
"node": ">=18" | ||
}, | ||
"scripts": { | ||
"test": "vitest run", | ||
"lint": "tsc --noEmit && eslint ./src --ext .ts", | ||
"build": "rollup -c ./rollup.config.js", | ||
"lint": "tsc --noEmit && eslint ./src", | ||
"build": "del-cli dist && tsc", | ||
"build:docs": "typedoc", | ||
"release": "npm run lint && del dist && npm run build && np" | ||
"release": "npm run lint && npm run build && np" | ||
}, | ||
@@ -64,22 +53,10 @@ "repository": { | ||
"license": "MIT", | ||
"bugs": { | ||
"url": "https://github.com/mesqueeb/is-what/issues" | ||
}, | ||
"homepage": "https://github.com/mesqueeb/is-what#readme", | ||
"devDependencies": { | ||
"@typescript-eslint/eslint-plugin": "^5.62.0", | ||
"@typescript-eslint/parser": "^5.62.0", | ||
"@cycraft/eslint": "^0.0.2", | ||
"@cycraft/tsconfig": "^0.1.2", | ||
"del-cli": "^5.1.0", | ||
"eslint-config-prettier": "^8.10.0", | ||
"eslint-plugin-tree-shaking": "^1.10.1", | ||
"eslint": "^8.52.0", | ||
"np": "^8.0.4", | ||
"prettier-plugin-jsdoc": "^0.4.2", | ||
"prettier": "^2.8.8", | ||
"rollup-plugin-dts": "^5.3.1", | ||
"rollup-plugin-esbuild": "^5.0.0", | ||
"rollup": "^3.29.4", | ||
"typedoc": "^0.25.2", | ||
"typescript": "^5.2.2", | ||
"vitest": "^0.34.6" | ||
"np": "^10.0.5", | ||
"typedoc": "^0.25.13", | ||
"vitest": "^1.6.0" | ||
}, | ||
@@ -90,42 +67,3 @@ "np": { | ||
"yarn": false | ||
}, | ||
"eslintConfig": { | ||
"ignorePatterns": [ | ||
"node_modules", | ||
"dist", | ||
"scripts", | ||
"test" | ||
], | ||
"root": true, | ||
"parser": "@typescript-eslint/parser", | ||
"plugins": [ | ||
"@typescript-eslint", | ||
"tree-shaking" | ||
], | ||
"extends": [ | ||
"eslint:recommended", | ||
"plugin:@typescript-eslint/eslint-recommended", | ||
"plugin:@typescript-eslint/recommended", | ||
"prettier" | ||
], | ||
"rules": { | ||
"@typescript-eslint/no-empty-function": "off", | ||
"@typescript-eslint/no-explicit-any": "off", | ||
"@typescript-eslint/ban-ts-ignore": "off", | ||
"tree-shaking/no-side-effects-in-initialization": "error", | ||
"@typescript-eslint/ban-ts-comment": "off" | ||
} | ||
}, | ||
"prettier": { | ||
"printWidth": 100, | ||
"tabWidth": 2, | ||
"singleQuote": true, | ||
"trailingComma": "es5", | ||
"semi": false, | ||
"bracketSpacing": true, | ||
"quoteProps": "consistent", | ||
"plugins": [ | ||
"prettier-plugin-jsdoc" | ||
] | ||
} | ||
} |
@@ -200,3 +200,3 @@ # is What? 🙉 | ||
```ts | ||
function isNumber(payload: any): payload is number { | ||
function isNumber(payload: unknown): payload is number { | ||
// return boolean | ||
@@ -219,5 +219,5 @@ } | ||
```ts | ||
function isPlainObject(payload: any): payload is { [key: string]: any } | ||
function isAnyObject(payload: any): payload is { [key: string]: any } | ||
// The reason to return `{[key: string]: any}` is to be able to do | ||
function isPlainObject(payload: unknown): payload is { [key: string]: unknown } | ||
function isAnyObject(payload: unknown): payload is { [key: string]: unknown } | ||
// The reason to return `{[key: string]: unknown}` is to be able to do | ||
if (isPlainObject(payload) && payload.id) return payload.id | ||
@@ -240,3 +240,3 @@ // if isPlainObject() would return `payload is object` then it would give an error at `payload.id` | ||
if (isAnyObject(payload)) { | ||
// in here `payload` is casted to: `Record<string | number | symbol, any>` | ||
// in here `payload` is casted to: `Record<string | number | symbol, unknown>` | ||
// WE LOOSE THE TYPE! | ||
@@ -257,3 +257,3 @@ } | ||
```ts | ||
function isObjectLike<T extends object>(payload: any): payload is T { | ||
function isObjectLike<T extends object>(payload: unknown): payload is T { | ||
return isAnyObject(payload) | ||
@@ -260,0 +260,0 @@ } |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
No bug tracker
MaintenancePackage does not have a linked bug tracker in package.json.
Found 1 instance in 1 package
6
79
33466
533
1
1