@sindresorhus/is
Advanced tools
Comparing version 4.6.0 to 5.0.0
@@ -1,6 +0,7 @@ | ||
/// <reference types="node" /> | ||
/// <reference lib="es2018" /> | ||
/// <reference lib="dom" /> | ||
import { Class, Falsy, TypedArray, ObservableLike, Primitive } from './types'; | ||
declare const objectTypeNames: readonly ["Function", "Generator", "AsyncGenerator", "GeneratorFunction", "AsyncGeneratorFunction", "AsyncFunction", "Observable", "Array", "Buffer", "Blob", "Object", "RegExp", "Date", "Error", "Map", "Set", "WeakMap", "WeakSet", "ArrayBuffer", "SharedArrayBuffer", "DataView", "Promise", "URL", "FormData", "URLSearchParams", "HTMLElement", ...("Int8Array" | "Uint8Array" | "Uint8ClampedArray" | "Int16Array" | "Uint16Array" | "Int32Array" | "Uint32Array" | "Float32Array" | "Float64Array" | "BigInt64Array" | "BigUint64Array")[]]; | ||
/// <reference types="node" resolution-mode="require"/> | ||
/// <reference types="node" resolution-mode="require"/> | ||
/// <reference types="node" resolution-mode="require"/> | ||
import type { Buffer } from 'node:buffer'; | ||
import type { Class, Falsy, TypedArray, ObservableLike, Primitive } from './types.js'; | ||
declare const objectTypeNames: readonly ["Function", "Generator", "AsyncGenerator", "GeneratorFunction", "AsyncGeneratorFunction", "AsyncFunction", "Observable", "Array", "Buffer", "Blob", "Object", "RegExp", "Date", "Error", "Map", "Set", "WeakMap", "WeakSet", "ArrayBuffer", "SharedArrayBuffer", "DataView", "Promise", "URL", "FormData", "URLSearchParams", "HTMLElement", "NaN", "Int8Array", "Uint8Array", "Uint8ClampedArray", "Int16Array", "Uint16Array", "Int32Array", "Uint32Array", "Float32Array", "Float64Array", "BigInt64Array", "BigUint64Array"]; | ||
declare type ObjectTypeName = typeof objectTypeNames[number]; | ||
@@ -62,4 +63,4 @@ declare const primitiveTypeNames: readonly ["null", "undefined", "string", "number", "bigint", "boolean", "symbol"]; | ||
var urlString: (value: unknown) => value is string; | ||
var truthy: <T>(value: false | "" | 0 | 0n | T | null | undefined) => value is T; | ||
var falsy: <T>(value: false | "" | 0 | 0n | T | null | undefined) => value is Falsy; | ||
var truthy: <T>(value: Falsy | T) => value is T; | ||
var falsy: <T>(value: Falsy | T) => value is Falsy; | ||
var nan: (value: unknown) => boolean; | ||
@@ -69,3 +70,3 @@ var primitive: (value: unknown) => value is Primitive; | ||
var safeInteger: (value: unknown) => value is number; | ||
var plainObject: <Value = unknown>(value: unknown) => value is Record<string | number | symbol, Value>; | ||
var plainObject: <Value = unknown>(value: unknown) => value is Record<PropertyKey, Value>; | ||
var typedArray: (value: unknown) => value is TypedArray; | ||
@@ -92,3 +93,3 @@ var arrayLike: <T = unknown>(value: unknown) => value is ArrayLike<T>; | ||
var nonEmptyMap: <Key = unknown, Value = unknown>(value: unknown) => value is Map<Key, Value>; | ||
var propertyKey: (value: unknown) => value is string | number | symbol; | ||
var propertyKey: (value: unknown) => value is PropertyKey; | ||
var formData: (value: unknown) => value is FormData; | ||
@@ -235,2 +236,2 @@ var urlSearchParams: (value: unknown) => value is URLSearchParams; | ||
export default is; | ||
export { Class, TypedArray, ObservableLike, Primitive } from './types'; | ||
export type { Class, TypedArray, ObservableLike, Primitive } from './types.js'; |
@@ -1,6 +0,1 @@ | ||
"use strict"; | ||
/// <reference lib="es2018"/> | ||
/// <reference lib="dom"/> | ||
/// <reference types="node"/> | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const typedArrayTypeNames = [ | ||
@@ -17,3 +12,3 @@ 'Int8Array', | ||
'BigInt64Array', | ||
'BigUint64Array' | ||
'BigUint64Array', | ||
]; | ||
@@ -50,3 +45,4 @@ function isTypedArrayName(name) { | ||
'HTMLElement', | ||
...typedArrayTypeNames | ||
'NaN', | ||
...typedArrayTypeNames, | ||
]; | ||
@@ -63,3 +59,3 @@ function isObjectTypeName(name) { | ||
'boolean', | ||
'symbol' | ||
'symbol', | ||
]; | ||
@@ -95,3 +91,3 @@ function isPrimitiveTypeName(name) { | ||
case 'number': | ||
return 'number'; | ||
return Number.isNaN(value) ? 'NaN' : 'number'; | ||
case 'boolean': | ||
@@ -132,2 +128,3 @@ return 'boolean'; | ||
is.function_ = isOfType('function'); | ||
// eslint-disable-next-line @typescript-eslint/ban-types | ||
is.null_ = (value) => value === null; | ||
@@ -145,19 +142,17 @@ is.class_ = (value) => is.function_(value) && value.toString().startsWith('class '); | ||
} | ||
return value.every(assertion); | ||
return value.every(element => assertion(element)); | ||
}; | ||
is.buffer = (value) => { var _a, _b, _c, _d; return (_d = (_c = (_b = (_a = value) === null || _a === void 0 ? void 0 : _a.constructor) === null || _b === void 0 ? void 0 : _b.isBuffer) === null || _c === void 0 ? void 0 : _c.call(_b, value)) !== null && _d !== void 0 ? _d : false; }; | ||
// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call | ||
is.buffer = (value) => value?.constructor?.isBuffer?.(value) ?? false; | ||
is.blob = (value) => isObjectOfType('Blob')(value); | ||
is.nullOrUndefined = (value) => is.null_(value) || is.undefined(value); | ||
is.object = (value) => !is.null_(value) && (typeof value === 'object' || is.function_(value)); | ||
is.iterable = (value) => { var _a; return is.function_((_a = value) === null || _a === void 0 ? void 0 : _a[Symbol.iterator]); }; | ||
is.asyncIterable = (value) => { var _a; return is.function_((_a = value) === null || _a === void 0 ? void 0 : _a[Symbol.asyncIterator]); }; | ||
is.generator = (value) => { var _a, _b; return is.iterable(value) && is.function_((_a = value) === null || _a === void 0 ? void 0 : _a.next) && is.function_((_b = value) === null || _b === void 0 ? void 0 : _b.throw); }; | ||
is.nullOrUndefined = (value) => is.null_(value) || is.undefined(value); // eslint-disable-line @typescript-eslint/ban-types | ||
is.object = (value) => !is.null_(value) && (typeof value === 'object' || is.function_(value)); // eslint-disable-line @typescript-eslint/ban-types | ||
is.iterable = (value) => is.function_(value?.[Symbol.iterator]); | ||
is.asyncIterable = (value) => is.function_(value?.[Symbol.asyncIterator]); | ||
is.generator = (value) => is.iterable(value) && is.function_(value?.next) && is.function_(value?.throw); | ||
is.asyncGenerator = (value) => is.asyncIterable(value) && is.function_(value.next) && is.function_(value.throw); | ||
is.nativePromise = (value) => isObjectOfType('Promise')(value); | ||
const hasPromiseAPI = (value) => { | ||
var _a, _b; | ||
return is.function_((_a = value) === null || _a === void 0 ? void 0 : _a.then) && | ||
is.function_((_b = value) === null || _b === void 0 ? void 0 : _b.catch); | ||
}; | ||
is.promise = (value) => is.nativePromise(value) || hasPromiseAPI(value); | ||
const hasPromiseApi = (value) => is.function_(value?.then) | ||
&& is.function_(value?.catch); | ||
is.promise = (value) => is.nativePromise(value) || hasPromiseApi(value); | ||
is.generatorFunction = isObjectOfType('GeneratorFunction'); | ||
@@ -173,4 +168,4 @@ is.asyncGeneratorFunction = (value) => getObjectType(value) === 'AsyncGeneratorFunction'; | ||
is.set = (value) => isObjectOfType('Set')(value); | ||
is.weakMap = (value) => isObjectOfType('WeakMap')(value); | ||
is.weakSet = (value) => isObjectOfType('WeakSet')(value); | ||
is.weakMap = (value) => isObjectOfType('WeakMap')(value); // eslint-disable-line @typescript-eslint/ban-types | ||
is.weakSet = (value) => isObjectOfType('WeakSet')(value); // eslint-disable-line @typescript-eslint/ban-types | ||
is.int8Array = isObjectOfType('Int8Array'); | ||
@@ -201,3 +196,3 @@ is.uint8Array = isObjectOfType('Uint8Array'); | ||
} | ||
catch (_a) { | ||
catch { | ||
return false; | ||
@@ -207,3 +202,3 @@ } | ||
// Example: `is.truthy = (value: unknown): value is (not false | not 0 | not '' | not undefined | not null) => Boolean(value);` | ||
is.truthy = (value) => Boolean(value); | ||
is.truthy = (value) => Boolean(value); // eslint-disable-line unicorn/prefer-native-coercion-functions | ||
// Example: `is.falsy = (value: unknown): value is (not true | 0 | '' | undefined | null) => Boolean(value);` | ||
@@ -220,2 +215,3 @@ is.falsy = (value) => !value; | ||
} | ||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment | ||
const prototype = Object.getPrototypeOf(value); | ||
@@ -236,3 +232,5 @@ return prototype === null || prototype === Object.getPrototypeOf({}); | ||
}; | ||
// eslint-disable-next-line @typescript-eslint/naming-convention | ||
const NODE_TYPE_ELEMENT = 1; | ||
// eslint-disable-next-line @typescript-eslint/naming-convention | ||
const DOM_PROPERTIES_TO_CHECK = [ | ||
@@ -243,21 +241,19 @@ 'innerHTML', | ||
'attributes', | ||
'nodeValue' | ||
'nodeValue', | ||
]; | ||
is.domElement = (value) => { | ||
return is.object(value) && | ||
value.nodeType === NODE_TYPE_ELEMENT && | ||
is.string(value.nodeName) && | ||
!is.plainObject(value) && | ||
DOM_PROPERTIES_TO_CHECK.every(property => property in value); | ||
}; | ||
is.domElement = (value) => is.object(value) | ||
&& value.nodeType === NODE_TYPE_ELEMENT | ||
&& is.string(value.nodeName) | ||
&& !is.plainObject(value) | ||
&& DOM_PROPERTIES_TO_CHECK.every(property => property in value); | ||
is.observable = (value) => { | ||
var _a, _b, _c, _d; | ||
if (!value) { | ||
return false; | ||
} | ||
// eslint-disable-next-line no-use-extend-native/no-use-extend-native | ||
if (value === ((_b = (_a = value)[Symbol.observable]) === null || _b === void 0 ? void 0 : _b.call(_a))) { | ||
// eslint-disable-next-line no-use-extend-native/no-use-extend-native, @typescript-eslint/no-unsafe-call | ||
if (value === value[Symbol.observable]?.()) { | ||
return true; | ||
} | ||
if (value === ((_d = (_c = value)['@@observable']) === null || _d === void 0 ? void 0 : _d.call(_c))) { | ||
// eslint-disable-next-line @typescript-eslint/no-unsafe-call | ||
if (value === value['@@observable']?.()) { | ||
return true; | ||
@@ -268,3 +264,3 @@ } | ||
is.nodeStream = (value) => is.object(value) && is.function_(value.pipe) && !is.observable(value); | ||
is.infinite = (value) => value === Infinity || value === -Infinity; | ||
is.infinite = (value) => value === Number.POSITIVE_INFINITY || value === Number.NEGATIVE_INFINITY; | ||
const isAbsoluteMod2 = (remainder) => (value) => is.integer(value) && Math.abs(value % 2) === remainder; | ||
@@ -282,9 +278,13 @@ is.evenInteger = isAbsoluteMod2(0); | ||
is.nonEmptyStringAndNotWhitespace = (value) => is.string(value) && !is.emptyStringOrWhitespace(value); | ||
// eslint-disable-next-line unicorn/no-array-callback-reference | ||
is.emptyObject = (value) => is.object(value) && !is.map(value) && !is.set(value) && Object.keys(value).length === 0; | ||
// TODO: Use `not` operator here to remove `Map` and `Set` from type guard: | ||
// - https://github.com/Microsoft/TypeScript/pull/29317 | ||
// eslint-disable-next-line unicorn/no-array-callback-reference | ||
is.nonEmptyObject = (value) => is.object(value) && !is.map(value) && !is.set(value) && Object.keys(value).length > 0; | ||
is.emptySet = (value) => is.set(value) && value.size === 0; | ||
is.nonEmptySet = (value) => is.set(value) && value.size > 0; | ||
// eslint-disable-next-line unicorn/no-array-callback-reference | ||
is.emptyMap = (value) => is.map(value) && value.size === 0; | ||
// eslint-disable-next-line unicorn/no-array-callback-reference | ||
is.nonEmptyMap = (value) => is.map(value) && value.size > 0; | ||
@@ -312,11 +312,12 @@ // `PropertyKey` is any value that can be used as an object key (string, number, or symbol) | ||
const { multipleValues } = options; | ||
const valuesMessage = multipleValues ? | ||
`received values of types ${[ | ||
...new Set(value.map(singleValue => `\`${is(singleValue)}\``)) | ||
].join(', ')}` : | ||
`received value of type \`${is(value)}\``; | ||
const valuesMessage = multipleValues | ||
? `received values of types ${[ | ||
...new Set(value.map(singleValue => `\`${is(singleValue)}\``)), | ||
].join(', ')}` | ||
: `received value of type \`${is(value)}\``; | ||
throw new TypeError(`Expected value which is \`${description}\`, ${valuesMessage}.`); | ||
} | ||
}; | ||
exports.assert = { | ||
/* eslint-disable @typescript-eslint/no-confusing-void-expression */ | ||
export const assert = { | ||
// Unknowns. | ||
@@ -330,6 +331,6 @@ undefined: (value) => assertType(is.undefined(value), 'undefined', value), | ||
null_: (value) => assertType(is.null_(value), 'null', value), | ||
class_: (value) => assertType(is.class_(value), "Class" /* class_ */, value), | ||
class_: (value) => assertType(is.class_(value), "Class" /* AssertionTypeDescription.class_ */, value), | ||
boolean: (value) => assertType(is.boolean(value), 'boolean', value), | ||
symbol: (value) => assertType(is.symbol(value), 'symbol', value), | ||
numericString: (value) => assertType(is.numericString(value), "string with a number" /* numericString */, value), | ||
numericString: (value) => assertType(is.numericString(value), "string with a number" /* AssertionTypeDescription.numericString */, value), | ||
array: (value, assertion) => { | ||
@@ -339,2 +340,3 @@ const assert = assertType; | ||
if (assertion) { | ||
// eslint-disable-next-line unicorn/no-array-for-each, unicorn/no-array-callback-reference | ||
value.forEach(assertion); | ||
@@ -345,9 +347,9 @@ } | ||
blob: (value) => assertType(is.blob(value), 'Blob', value), | ||
nullOrUndefined: (value) => assertType(is.nullOrUndefined(value), "null or undefined" /* nullOrUndefined */, value), | ||
nullOrUndefined: (value) => assertType(is.nullOrUndefined(value), "null or undefined" /* AssertionTypeDescription.nullOrUndefined */, value), | ||
object: (value) => assertType(is.object(value), 'Object', value), | ||
iterable: (value) => assertType(is.iterable(value), "Iterable" /* iterable */, value), | ||
asyncIterable: (value) => assertType(is.asyncIterable(value), "AsyncIterable" /* asyncIterable */, value), | ||
iterable: (value) => assertType(is.iterable(value), "Iterable" /* AssertionTypeDescription.iterable */, value), | ||
asyncIterable: (value) => assertType(is.asyncIterable(value), "AsyncIterable" /* AssertionTypeDescription.asyncIterable */, value), | ||
generator: (value) => assertType(is.generator(value), 'Generator', value), | ||
asyncGenerator: (value) => assertType(is.asyncGenerator(value), 'AsyncGenerator', value), | ||
nativePromise: (value) => assertType(is.nativePromise(value), "native Promise" /* nativePromise */, value), | ||
nativePromise: (value) => assertType(is.nativePromise(value), "native Promise" /* AssertionTypeDescription.nativePromise */, value), | ||
promise: (value) => assertType(is.promise(value), 'Promise', value), | ||
@@ -383,28 +385,28 @@ generatorFunction: (value) => assertType(is.generatorFunction(value), 'GeneratorFunction', value), | ||
urlInstance: (value) => assertType(is.urlInstance(value), 'URL', value), | ||
urlString: (value) => assertType(is.urlString(value), "string with a URL" /* urlString */, value), | ||
truthy: (value) => assertType(is.truthy(value), "truthy" /* truthy */, value), | ||
falsy: (value) => assertType(is.falsy(value), "falsy" /* falsy */, value), | ||
nan: (value) => assertType(is.nan(value), "NaN" /* nan */, value), | ||
primitive: (value) => assertType(is.primitive(value), "primitive" /* primitive */, value), | ||
integer: (value) => assertType(is.integer(value), "integer" /* integer */, value), | ||
safeInteger: (value) => assertType(is.safeInteger(value), "integer" /* safeInteger */, value), | ||
plainObject: (value) => assertType(is.plainObject(value), "plain object" /* plainObject */, value), | ||
typedArray: (value) => assertType(is.typedArray(value), "TypedArray" /* typedArray */, value), | ||
arrayLike: (value) => assertType(is.arrayLike(value), "array-like" /* arrayLike */, value), | ||
domElement: (value) => assertType(is.domElement(value), "HTMLElement" /* domElement */, value), | ||
urlString: (value) => assertType(is.urlString(value), "string with a URL" /* AssertionTypeDescription.urlString */, value), | ||
truthy: (value) => assertType(is.truthy(value), "truthy" /* AssertionTypeDescription.truthy */, value), | ||
falsy: (value) => assertType(is.falsy(value), "falsy" /* AssertionTypeDescription.falsy */, value), | ||
nan: (value) => assertType(is.nan(value), "NaN" /* AssertionTypeDescription.nan */, value), | ||
primitive: (value) => assertType(is.primitive(value), "primitive" /* AssertionTypeDescription.primitive */, value), | ||
integer: (value) => assertType(is.integer(value), "integer" /* AssertionTypeDescription.integer */, value), | ||
safeInteger: (value) => assertType(is.safeInteger(value), "integer" /* AssertionTypeDescription.safeInteger */, value), | ||
plainObject: (value) => assertType(is.plainObject(value), "plain object" /* AssertionTypeDescription.plainObject */, value), | ||
typedArray: (value) => assertType(is.typedArray(value), "TypedArray" /* AssertionTypeDescription.typedArray */, value), | ||
arrayLike: (value) => assertType(is.arrayLike(value), "array-like" /* AssertionTypeDescription.arrayLike */, value), | ||
domElement: (value) => assertType(is.domElement(value), "HTMLElement" /* AssertionTypeDescription.domElement */, value), | ||
observable: (value) => assertType(is.observable(value), 'Observable', value), | ||
nodeStream: (value) => assertType(is.nodeStream(value), "Node.js Stream" /* nodeStream */, value), | ||
infinite: (value) => assertType(is.infinite(value), "infinite number" /* infinite */, value), | ||
emptyArray: (value) => assertType(is.emptyArray(value), "empty array" /* emptyArray */, value), | ||
nonEmptyArray: (value) => assertType(is.nonEmptyArray(value), "non-empty array" /* nonEmptyArray */, value), | ||
emptyString: (value) => assertType(is.emptyString(value), "empty string" /* emptyString */, value), | ||
emptyStringOrWhitespace: (value) => assertType(is.emptyStringOrWhitespace(value), "empty string or whitespace" /* emptyStringOrWhitespace */, value), | ||
nonEmptyString: (value) => assertType(is.nonEmptyString(value), "non-empty string" /* nonEmptyString */, value), | ||
nonEmptyStringAndNotWhitespace: (value) => assertType(is.nonEmptyStringAndNotWhitespace(value), "non-empty string and not whitespace" /* nonEmptyStringAndNotWhitespace */, value), | ||
emptyObject: (value) => assertType(is.emptyObject(value), "empty object" /* emptyObject */, value), | ||
nonEmptyObject: (value) => assertType(is.nonEmptyObject(value), "non-empty object" /* nonEmptyObject */, value), | ||
emptySet: (value) => assertType(is.emptySet(value), "empty set" /* emptySet */, value), | ||
nonEmptySet: (value) => assertType(is.nonEmptySet(value), "non-empty set" /* nonEmptySet */, value), | ||
emptyMap: (value) => assertType(is.emptyMap(value), "empty map" /* emptyMap */, value), | ||
nonEmptyMap: (value) => assertType(is.nonEmptyMap(value), "non-empty map" /* nonEmptyMap */, value), | ||
nodeStream: (value) => assertType(is.nodeStream(value), "Node.js Stream" /* AssertionTypeDescription.nodeStream */, value), | ||
infinite: (value) => assertType(is.infinite(value), "infinite number" /* AssertionTypeDescription.infinite */, value), | ||
emptyArray: (value) => assertType(is.emptyArray(value), "empty array" /* AssertionTypeDescription.emptyArray */, value), | ||
nonEmptyArray: (value) => assertType(is.nonEmptyArray(value), "non-empty array" /* AssertionTypeDescription.nonEmptyArray */, value), | ||
emptyString: (value) => assertType(is.emptyString(value), "empty string" /* AssertionTypeDescription.emptyString */, value), | ||
emptyStringOrWhitespace: (value) => assertType(is.emptyStringOrWhitespace(value), "empty string or whitespace" /* AssertionTypeDescription.emptyStringOrWhitespace */, value), | ||
nonEmptyString: (value) => assertType(is.nonEmptyString(value), "non-empty string" /* AssertionTypeDescription.nonEmptyString */, value), | ||
nonEmptyStringAndNotWhitespace: (value) => assertType(is.nonEmptyStringAndNotWhitespace(value), "non-empty string and not whitespace" /* AssertionTypeDescription.nonEmptyStringAndNotWhitespace */, value), | ||
emptyObject: (value) => assertType(is.emptyObject(value), "empty object" /* AssertionTypeDescription.emptyObject */, value), | ||
nonEmptyObject: (value) => assertType(is.nonEmptyObject(value), "non-empty object" /* AssertionTypeDescription.nonEmptyObject */, value), | ||
emptySet: (value) => assertType(is.emptySet(value), "empty set" /* AssertionTypeDescription.emptySet */, value), | ||
nonEmptySet: (value) => assertType(is.nonEmptySet(value), "non-empty set" /* AssertionTypeDescription.nonEmptySet */, value), | ||
emptyMap: (value) => assertType(is.emptyMap(value), "empty map" /* AssertionTypeDescription.emptyMap */, value), | ||
nonEmptyMap: (value) => assertType(is.nonEmptyMap(value), "non-empty map" /* AssertionTypeDescription.nonEmptyMap */, value), | ||
propertyKey: (value) => assertType(is.propertyKey(value), 'PropertyKey', value), | ||
@@ -414,13 +416,12 @@ formData: (value) => assertType(is.formData(value), 'FormData', value), | ||
// Numbers. | ||
evenInteger: (value) => assertType(is.evenInteger(value), "even integer" /* evenInteger */, value), | ||
oddInteger: (value) => assertType(is.oddInteger(value), "odd integer" /* oddInteger */, value), | ||
evenInteger: (value) => assertType(is.evenInteger(value), "even integer" /* AssertionTypeDescription.evenInteger */, value), | ||
oddInteger: (value) => assertType(is.oddInteger(value), "odd integer" /* AssertionTypeDescription.oddInteger */, value), | ||
// Two arguments. | ||
directInstanceOf: (instance, class_) => assertType(is.directInstanceOf(instance, class_), "T" /* directInstanceOf */, instance), | ||
inRange: (value, range) => assertType(is.inRange(value, range), "in range" /* inRange */, value), | ||
directInstanceOf: (instance, class_) => assertType(is.directInstanceOf(instance, class_), "T" /* AssertionTypeDescription.directInstanceOf */, instance), | ||
inRange: (value, range) => assertType(is.inRange(value, range), "in range" /* AssertionTypeDescription.inRange */, value), | ||
// Variadic functions. | ||
any: (predicate, ...values) => { | ||
return assertType(is.any(predicate, ...values), "predicate returns truthy for any value" /* any */, values, { multipleValues: true }); | ||
}, | ||
all: (predicate, ...values) => assertType(is.all(predicate, ...values), "predicate returns truthy for all values" /* all */, values, { multipleValues: true }) | ||
any: (predicate, ...values) => assertType(is.any(predicate, ...values), "predicate returns truthy for any value" /* AssertionTypeDescription.any */, values, { multipleValues: true }), | ||
all: (predicate, ...values) => assertType(is.all(predicate, ...values), "predicate returns truthy for all values" /* AssertionTypeDescription.all */, values, { multipleValues: true }), | ||
}; | ||
/* eslint-enable @typescript-eslint/no-confusing-void-expression */ | ||
// Some few keywords are reserved, but we'll populate them for Node.js users | ||
@@ -430,26 +431,22 @@ // See https://github.com/Microsoft/TypeScript/issues/2536 | ||
class: { | ||
value: is.class_ | ||
value: is.class_, | ||
}, | ||
function: { | ||
value: is.function_ | ||
value: is.function_, | ||
}, | ||
null: { | ||
value: is.null_ | ||
} | ||
value: is.null_, | ||
}, | ||
}); | ||
Object.defineProperties(exports.assert, { | ||
Object.defineProperties(assert, { | ||
class: { | ||
value: exports.assert.class_ | ||
value: assert.class_, | ||
}, | ||
function: { | ||
value: exports.assert.function_ | ||
value: assert.function_, | ||
}, | ||
null: { | ||
value: exports.assert.null_ | ||
} | ||
value: assert.null_, | ||
}, | ||
}); | ||
exports.default = is; | ||
// For CommonJS default export support | ||
module.exports = is; | ||
module.exports.default = is; | ||
module.exports.assert = exports.assert; | ||
export default is; |
@@ -1,3 +0,2 @@ | ||
"use strict"; | ||
// Extracted from https://github.com/sindresorhus/type-fest/blob/78019f42ea888b0cdceb41a4a78163868de57555/index.d.ts | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
export {}; |
{ | ||
"name": "@sindresorhus/is", | ||
"version": "4.6.0", | ||
"version": "5.0.0", | ||
"description": "Type check values", | ||
@@ -13,5 +13,7 @@ "license": "MIT", | ||
}, | ||
"main": "dist/index.js", | ||
"type": "module", | ||
"exports": "./index.js", | ||
"types": "./index.d.ts", | ||
"engines": { | ||
"node": ">=10" | ||
"node": ">=14.16" | ||
}, | ||
@@ -51,48 +53,32 @@ "scripts": { | ||
"devDependencies": { | ||
"@sindresorhus/tsconfig": "^0.7.0", | ||
"@types/jsdom": "^16.1.0", | ||
"@types/node": "^14.0.13", | ||
"@types/zen-observable": "^0.8.0", | ||
"@typescript-eslint/eslint-plugin": "^2.20.0", | ||
"@typescript-eslint/parser": "^2.20.0", | ||
"ava": "^3.3.0", | ||
"del-cli": "^2.0.0", | ||
"eslint-config-xo-typescript": "^0.26.0", | ||
"jsdom": "^16.0.1", | ||
"rxjs": "^6.4.0", | ||
"tempy": "^0.4.0", | ||
"ts-node": "^8.3.0", | ||
"typescript": "~3.8.2", | ||
"xo": "^0.26.1", | ||
"zen-observable": "^0.8.8" | ||
"@sindresorhus/tsconfig": "^3.0.1", | ||
"@types/jsdom": "^16.2.14", | ||
"@types/node": "^17.0.42", | ||
"@types/zen-observable": "^0.8.3", | ||
"ava": "^4.3.0", | ||
"del-cli": "^4.0.1", | ||
"jsdom": "^19.0.0", | ||
"rxjs": "^7.5.5", | ||
"tempy": "^3.0.0", | ||
"ts-node": "^10.8.1", | ||
"typescript": "~4.7.3", | ||
"xo": "^0.50.0", | ||
"zen-observable": "^0.8.15" | ||
}, | ||
"types": "dist/index.d.ts", | ||
"sideEffects": false, | ||
"ava": { | ||
"extensions": [ | ||
"ts" | ||
], | ||
"require": [ | ||
"ts-node/register" | ||
"extensions": { | ||
"ts": "module" | ||
}, | ||
"nodeArguments": [ | ||
"--loader=ts-node/esm" | ||
] | ||
}, | ||
"xo": { | ||
"extends": "xo-typescript", | ||
"extensions": [ | ||
"ts" | ||
], | ||
"parserOptions": { | ||
"project": "./tsconfig.xo.json" | ||
}, | ||
"globals": [ | ||
"BigInt", | ||
"BigInt64Array", | ||
"BigUint64Array" | ||
], | ||
"rules": { | ||
"@typescript-eslint/promise-function-async": "off", | ||
"@typescript-eslint/no-empty-function": "off", | ||
"@typescript-eslint/explicit-function-return-type": "off" | ||
"@typescript-eslint/explicit-function-return-type": "off", | ||
"@typescript-eslint/triple-slash-reference": "off" | ||
} | ||
} | ||
} |
@@ -27,3 +27,3 @@ # is | ||
```js | ||
const is = require('@sindresorhus/is'); | ||
import is from '@sindresorhus/is'; | ||
@@ -43,3 +43,3 @@ is('🦄'); | ||
```js | ||
const {assert} = require('@sindresorhus/is'); | ||
import {assert} from '@sindresorhus/is'; | ||
@@ -441,3 +441,3 @@ assert.string(2); | ||
```js | ||
const fs = require('fs'); | ||
import fs from 'node:fs'; | ||
@@ -453,3 +453,3 @@ is.nodeStream(fs.createReadStream('unicorn.png')); | ||
```js | ||
const {Observable} = require('rxjs'); | ||
import {Observable} from 'rxjs'; | ||
@@ -456,0 +456,0 @@ is.observable(new Observable()); |
58262
13
Yes
693