UNPKG

error-custom-class

Version:
39 lines (35 loc) 979 B
import type { ErrorName } from 'error-class-utils' export type { ErrorName } /** * Custom error class */ // eslint-disable-next-line fp/no-class export declare class CustomError< ErrorNameArg extends ErrorName = ErrorName, Options extends object = object, > extends Error { constructor(message: string, params?: Options & { cause?: unknown }) name: ErrorNameArg } /** * Creates a custom error class. * * @example * ```js * import errorCustomClass from 'error-custom-class' * * const UserError = errorCustomClass('UserError') * const DatabaseError = errorCustomClass('DatabaseError') * * try { * throw new UserError('message') * } catch (error) { * console.log(error.name) // 'UserError' * console.log(error instanceof UserError) // true * } * ``` */ export default function errorCustomClass< ErrorNameArg extends ErrorName = ErrorName, Options extends object = object, >(errorName: ErrorNameArg): typeof CustomError<ErrorNameArg, Options>