eror
v1.0.0
Published
Error utilities which provide error classes for HTTP response (4xx, 5xx) and more.
Downloads
7
Maintainers
Readme
eror
Error utilities which provide error classes for HTTP response (4xx, 5xx) and more.
Installation
$ npm install eror
Example
// Formatted message
new eror.InvalidTypeError('"%s" must be a string!', 'name');
// Custom status code
new eror.MissingValueError(400, '"%s" is required!', 'age');
// Pre-defined HTTP errors
new eror.NotFoundError('User "%s" not found!', 'paul');
// Custom errors
eror(503, 'The Earth is %s!', 'exploding');
API reference
eror([statusCode], [message || format], [...values])
Create a custom error.
eror(401, 'You are not logged in!');
eror('Welcome, %s %s.', 'John', 'Lennon');
statusCode
: Status code as a number, defaults to 500.message
: Error message.format
: Placeholder string, please refer to util.format for more details....values
: Values to be placed in placeholder string.
new eror[name]([statusCode], [message || format], [...values])
Instantiate a new common error.
new eror.MissingValueError(400, '"%s" field is required!', 'name');
name
: Class name of the error, as specified in common error list.statusCode
: Status code, if is not specified, default status code, 500, will be used.message
,format
and...values
: as in eror().
new eror[name || statusCode]([message || format], [...values])
Instantiate a new HTTP error.
new eror.NotFoundError('Requested resource not found!');
new eror[500]('Server exploded at %s!', new Date());
name
: Class name of the error, as specified in HTTP error list.statusCode
: Status code of HTTP error.message
,format
and...values
: as in eror().
HTTP error's status code cannot be overridden.
Error properties
var err = eror(404, 'Nothing!');
err.message; // Nothing!
err.statusCode; // 404
err.status; // also 404
message
statusCode
andstatus
: Status code of the error.
Error class properties
eror.InternalServerError.MESSAGE; // Internal Server Error
eror.InternalServerError.STATUS_CODE; // 500
eror.InternalServerError.STATUS; // also 500
MESSAGE
: Default error message of errors which are instantiate from this class.STATUS_CODE
andSTATUS
: Default status code.
Error list
Common errors
| Class name | Status code | | ------------------------- |:-----------:| | UnsupportedOperationError | 500 | | ReversedNameError | 500 | | NameAlreadyDefinedError | 500 | | InvalidOperationError | 500 | | InvalidTypeError | 500 | | MissingValueError | 500 | | InvalidValueError | 500 |
HTTP errors
| Class name | Status code | | ---------------------------------- |:-----------:| | BadRequestError | 400 | | UnauthorizedError | 401 | | PaymentRequiredError | 402 | | ForbiddenError | 403 | | NotFoundError | 404 | | MethodNotAllowedError | 405 | | NotAcceptableError | 406 | | ProxyAuthenticationRequiredError | 407 | | RequestTimeoutError | 408 | | ConflictError | 409 | | GoneError | 410 | | LengthRequiredError | 411 | | PreconditionFailedError | 412 | | PayloadTooLargeError | 413 | | UriTooLongError | 414 | | UnsupportedMediaTypeError | 415 | | RangeNotSatisfiableError | 416 | | ExpectationFailedError | 417 | | ImATeapotError | 418 | | UnprocessableEntityError | 422 | | LockedError | 423 | | FailedDependencyError | 424 | | UnorderedCollectionError | 425 | | UpgradeRequiredError | 426 | | PreconditionRequiredError | 428 | | TooManyRequestsError | 429 | | RequestHeaderFieldsTooLargeError | 431 | | UnableForLegalReasonsError | 451 | | InternalServerError | 500 | | NotImplementedError | 501 | | BadGatewayError | 502 | | ServiceUnavailableError | 503 | | GatewayTimeoutError | 504 | | HttpVersionNotSupportedError | 505 | | VariantAlsoNegotiatesError | 506 | | InsufficientStorageError | 507 | | LoopDetectedError | 508 | | BandwidthLimitExceededError | 509 | | NotExtendedError | 510 | | NetworkAuthenticationRequiredError | 511 |
Contributing
Submit new issue if there is any common error, which is useful for you or others, unavailable.
In lieu of a formal styleguide, take care to maintain the existing coding style. .editorconfig and .jshintrc files can give you more details.
Add tests for any new or changed functionality/element.
Lint and test your code using
npm test
.
Author
- Website: http://meo.guru
- Twitter: @meoguru
License
Released under MIT license.