Skip to main content

@w5s/error

W5S Error module (@w5s/error)

NPM Version License

Installation​

npm install @w5s/error

Usage​

import { Error, ErrorClass, TypeError } from '@w5s/error';

export class MyError extends ErrorClass({ errorName: 'MyError' })<{
bar: boolean;
foo: string;
}> {}

const myError = new MyError({
bar: true,
cause: TypeError('this is the cause'),
foo: 'this is foo',
});

console.log(myError instanceof Error); // true

License​

MIT © Julien Polo julien.polo@gmail.com

Index

Constructor

CustomError

CustomError: CustomErrorConstructor

Return a new CustomError

const parentError: Error;
const error = new CustomError({
name: 'FooError' as const, // this is required
message: 'my custom message', // customize message (optional)
cause: parentError, // Error that caused this error (optional)
})

initial properties

Other

CustomError

CustomError<Properties>: Readonly<globalThis.Error & Properties & { cause: unknown; message: string; name: Properties[name]; stack: string }>

A Standard extendable error type


Type parameters

  • Properties: CustomErrorRequiredProperties = CustomErrorRequiredProperties

ErrorClassParameters

ErrorClassParameters<Properties>: RequiredKeysOf<Omit<Properties, cause | message | name | stack>> extends never ? [properties?: ErrorClassProperties<Properties>] : [properties: ErrorClassProperties<Properties>]

Extract all parameters to create a new CustomError


Type parameters

  • Properties: object

ErrorClassProperties

ErrorClassProperties<Properties>: Omit<Properties, cause | message | name | stack> & { cause?: unknown; message?: string }

Extract all properties passed to constructor


Type parameters

  • Properties: object

ErrorType

ErrorType<Name, Properties>: CustomError<Properties & { name: Name }>

Type parameters

  • Name: string
  • Properties

AggregateError

AggregateError: { <Errors>(errors, message): AggregateError<Errors>; new AggregateError<Errors>(errors, message): AggregateError<Errors> }

Error

Error: { (message, options): Error; new Error(message, options): Error }

EvalError

EvalError: { (message, options): EvalError; new EvalError(message, options): EvalError }

RangeError

RangeError: { (message, options): RangeError; new RangeError(message, options): RangeError }

ReferenceError

ReferenceError: { (message, options): ReferenceError; new ReferenceError(message, options): ReferenceError }

SyntaxError

SyntaxError: { (message, options): SyntaxError; new SyntaxError(message, options): SyntaxError }

TypeError

TypeError: { (message, options): TypeError; new TypeError(message, options): TypeError }

URIError

URIError: { (message, options): URIError; new URIError(message, options): URIError }