Skip to content

Common error builder utility for Node.js. Contains common error types, and stack trace tracking to support more detailed error messages.

License

Notifications You must be signed in to change notification settings

opentable/spur-errors

Repository files navigation

Spur: Errors

Common error builder utility for Node.js. Contains common error types, and stack trace tracking to support more detailed error messages.

NPM Version NPM Install Size NPM Downloads

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");
// => {statusCode: 400, message: "Validation Error", errorCode: "validation_error", ....}

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. 😇

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

About

Common error builder utility for Node.js. Contains common error types, and stack trace tracking to support more detailed error messages.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published