1.0.0 • Published 11 years ago
eror v1.0.0
eror
Error utilities which provide error classes for HTTP response (4xx, 5xx) and more.
Installation
$ npm install erorExample
// 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,formatand...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,formatand...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 404messagestatusCodeandstatus: Status code of the error.
Error class properties
eror.InternalServerError.MESSAGE; // Internal Server Error
eror.InternalServerError.STATUS_CODE; // 500
eror.InternalServerError.STATUS; // also 500MESSAGE: Default error message of errors which are instantiate from this class.STATUS_CODEandSTATUS: 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.
1.0.0
11 years ago