Common error builder utility for Node.js. Contains common error types, and stack trace tracking to support more detailed error messages.
![NPM Downloads](https://badgen.net/npm/dm/spur-errors)
About the Spur Framework
The Spur Framework is a collection of commonly used Node.JS libraries used to create common application types with shared libraries.
Visit NPMJS.org for a full list of Spur Framework libraries >>
Usage
Supports active Node versions in the LTS Schedule. (view current versions)
Install from NPM
$ npm install --save spur-errors
Require and use the module
let SpurErrors = require("spur-errors");
SpurErrors.NotFoundError.create("could not find it");
API
The API is designed to be daisy chained with all of the following base commands that are a part of all of the error types.
Base Object Commands
.create(message, nativeError) -> instance
Creates an instance of a SpurError for the type used.
try {
...
}
catch(err) {
SpurErrors.NotFound.create("Some error", err);
}
.setErrorCode(errorCode) -> instance
Sets an error code to later be used by error handlers.
SpurErrors.NotFound.create("Not found").setErrorCode("leaf_error");
.setMessage(message) -> instance
Overrides the error message passed in.
SpurErrors.NotFound.create("Not found").setMessage("Unable to find the restaurant.");
.setStatusCode(statusCode) -> instance
Setting the response status code to be sent back down to the client.
SpurErrors.NotFound.create("Not found").setStatusCode(404);
.setData(data) -> instance
Sets customizable data that can be used down the error stack chain.
SpurErrors.NotFound.create("Not found").setData({headers: req.headers});
Properties
Property | Description |
---|
internalError | The original error object passed in |
message | Either passed in during the create call or during the parsing of the internal error |
stack | Parsed from the originally passed in internal error |
errorCode | Custom error code |
statusCode | Custom status code to be used by the Express.JS response |
data | Custom data object to be used anyone in the flow |
Error Types
Error Type | Status Code | Message | Error Code |
---|
ValidationError | 400 | Validation Error | validation_error |
UnauthorizedError | 401 | Unauthorized Error | unauthorized_error |
ForbiddenError | 403 | Forbidden Error | forbidden_error |
NotFoundError | 404 | Not Found Error | not_found_error |
MethodNotAllowedError | 405 | Method not allowed | method_not_allowed_error |
RequestTimeoutError | 408 | Request Timeout Error | request_timeout_error |
AlreadyExistsError | 409 | Already Exists Error | already_exists_error |
InternalServerError | 500 | Internal Server Error | internal_server_error |
BadGatewayError | 502 | Bad Gateway Error | bad_gateway_error |
ServiceUnavailableError | 503 | Service Unavailable Error | service_unavailable_error |
GatewayTimeoutError | 504 | Gateway Unavailable Error | gateway_timeout_error |
Error type example
SpurErrors.ValidationError.create("Invalid input");
Maintainers
This library is maintained by
Collaborators
Contributing
We accept pull requests
Please send in pull requests and they will be reviewed in a timely manner. Please review this generic guide to submitting a good pull requests. The only things we ask in addition are the following:
- Please submit small pull requests
- Provide a good description of the changes
- Code changes must include tests
- Be nice to each other in comments. :innocent:
Style guide
The majority of the settings are controlled using an EditorConfig configuration file. To use it please download a plugin for your editor of choice.
All tests should pass
To run the test suite, first install the dependancies, then run npm test
$ npm install
$ npm test
License
MIT