2.1.3 • Published 2 months ago

@zerodep/is-error v2.1.3

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

@zerodep/is-Error

version language types license

CodeFactor Known Vulnerabilities

A utility to determine if a value is an Error or specific instance/subclass of an Error type.

Full documentation is available at the zerodep.app page.

Examples

All @zerodep packages support both ESM and CJS.

import { isError } from '@zerodep/is-error';
// or
const { isError } = require('@zerodep/is-error');

Positive Response

isError(new Error('message')); // true

isError(new Error()); // true

// using custom error subclasses
class MyError extends Error {}
isError(new MyError('message'), Error); // true
isError(new MyError('message'), MyError); // true

Negative Special Cases

// force error message to be a number (or any non-string value)
const err1 = new Error();
err1.message = 123;
isError(err1); // false

// force error message to be null
const err2 = new Error();
err2.message = null; // force error message to be null
isError(err2); // false

// force error message to be undefined
const err3 = new Error();
err23message = undefined;
isError(err3); // false

// using error subclasses
isError(new SyntaxError('message'), RangeError); // false

// using custom error subclasses
class ErrorA extends Error {}
class ErrorB extends Error {}
isError(new ErrorA('message'), ErrorB); // false

Negative Response

isError(['a', 'b', 'c']); // false
isError(1000n); // false
isError(true); // false
isError(new Date()); // false
isError(''); // false
isError(3.14); // false
isError(() => 'function'); // false
isError(42); // false
isError(
  new Map([
    ['a', 1],
    ['b', 2],
  ])
); // false
isError(null); // false
isError({ an: 'object' }); // false
isError(new Promise(() => {})); // false
isError(/[regex]+/gi); // false
isError(new Set([1, 2, 3])); // false
isError('a string'); // false
isError(Symbol()); // false
isError(new Int32Array(2)); // false
isError(undefined); // false
2.1.3

2 months ago

2.1.2

2 months ago

2.1.1

2 months ago

2.0.2

10 months ago

2.0.4

7 months ago

2.1.0

7 months ago

2.0.1

11 months ago