2.0.0 • Published 10 months ago

abstract-error v2.0.0

Weekly downloads
21
License
MIT
Repository
github
Last release
10 months ago

AbtractError Build Status npm downloads license

abstract error class with error code supports to create error class quickly.

Classes

AbstractError

All Errors are derived from the AbstractError.

import { AbstractError, createErrorClass } from 'abstract-error'
  • Members:
    • message: the error message.
    • code: the error code.
  • Class Methods:
    • createErrorClass(aType: string, aErrorCode: number, ParentErrorClass=AbstractError): typeof AbstractError

CommonError

import { CommonError } from 'abstract-error'

CommonError derived from the AbstractError. All Common Errors are derived from the CommonError. The CommonError use the number as error code.

  • Members:
    • message: the error message.
    • code: the error code.
  • Methods: return true if the error instance is this error type.
    • ok()
    • notFound()
    • ....
    • invalidFormat()
  • Class Methods:
    • createErrorClass(aType: string, aErrorCode?: number, ParentErrorClass=CommonError): typeof CommonError
    • CommonError.isOk(err)
    • CommonError.isNotFound(err)
    • ...

the error codes:

  • CommonError.Ok = 0
  • CommonError.NotFound = 1
  • CommonError.Corruption = 2
  • CommonError.NotSupported = 3
  • CommonError.InvalidArgument = 4
  • CommonError.IO = 5
  • CommonError.NotOpened = 6
  • CommonError.InvalidType = 7
  • CommonError.InvalidFormat = 8

Other Error Classes

  • Errors.NotFoundError
  • Errors.CorruptionError
  • Errors.NotSupportedError/NotImplementedError
  • Errors.InvalidArgumentError
  • Errors.IOError
  • Errors.NotOpenedError
  • Errors.InvalidTypeError
  • Errors.InvalidFormatError

Extends the AbstractError

use the createErrorClass function can extend the AbstractError.

createErrorClass(typeName, errorCode?: number|string, parentErrorClass?: typeof AbstractError): typeof AbstractError

arguments

  • typeName (string): the error type name, the first character must be upper case.
  • errorCode: (number|string): the optional error code, it should be not equal 0 if it's a number.
  • parentErrorClass: (class): the optional parent error class. defaults to AbstractError.

return

  • the new error class

Usage

import {CommonError, Errors, createCommonErrorClass} from 'abstract-error';

const NotFoundError = Errors.NotFoundError
const AlreadyReadError = createCommonErrorClass('AlreadyRead', 10000)

const err = new AlreadyReadError('already read over error.')

assert.ok(CommonError.isAlreadyRead(err))
assert.ok(AlreadyReadError.isAlreadyRead(err))
assert.ok(err.alreadyRead())
assert.equal(err.message, 'already read over error.')
assert.equal(err.code, 10000)