Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@uphold/http-errors

Package Overview
Dependencies
Maintainers
9
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@uphold/http-errors

Set of errors based on http-standard-error

  • 1.4.0
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
6.3K
decreased by-5.32%
Maintainers
9
Weekly downloads
 
Created
Source

http-errors

This module provides a set of errors based on standard-http-error, reducing the boilerplate of adding error classes for the most common HTTP errors.

Setup

Install @uphold/http-errors with yarn:

$ yarn add @uphold/http-errors

Alternatively, with npm:

$ npm i @uphold/http-errors

Errors

The HttpError serves as base error since all other errors extend it, use it to handle errors provided from this library.

const { BadRequestError, HttpError } = require('@uphold/http-errors');

try {
  throw new BadRequestError();
} catch (e) {
  console.log(e instanceof HttpError);
  // true
}

Below is the list of all available errors:

NameCodeDefault message
AssertionFailedError500Internal Server Error
BadRequestError400Bad Request
ConflictError409Conflict
ForbiddenError403Forbidden
GoneError410Gone
NotFoundError404Not Found
ServiceUnavailableError503Service Unavailable
TooManyRequestsError429Too Many Requests
UnauthorizedError401Unauthorized
ValidationFailedError400Validation Failed

Usage

Import and throw an HTTP error:

const { ForbiddenError, UnauthorizedError } = require('@uphold/http-errors');

function authorize(user, permission) {
  if (!user.role) {
    throw new UnauthorizedError('User needs to authenticate');
  }

  if (permission === 'admin' && user.role !== 'admin') {
    throw new ForbiddenError('Only admins allowed', { role: 'admin' })
  }

  return true;
}

All errors accept a message and a set of properties as arguments, or both:

const { BadRequestError } = require('@uphold/http-errors');

try {
  throw new BadRequestError();
} catch (e) {
  console.log(e);
  // { BadRequestError: Bad Request
  //   at ...
  //   message: 'Bad Request', name: 'BadRequestError', code: 400 }
}

try {
  throw new BadRequestError('foo');
} catch (e) {
  // { BadRequestError: Bad Request
  //   at ...
  //   message: 'foo', name: 'BadRequestError', code: 400 }
}

try {
  throw new BadRequestError({ foo: 'bar' });
} catch (e) {
  console.log(e);
  // { BadRequestError: Bad Request
  //   at ...
  //   message: 'Bad Request', foo: 'bar', name: 'BadRequestError', code: 400 }
}

try {
  throw new BadRequestError('foo', { bar: 'biz' });
} catch (e) {
  console.log(e);
  // { BadRequestError: Bad Request
  //   at ...
  //   message: 'foo', bar: 'biz', name: 'BadRequestError', code: 400 }
}

Test suite

Use the test script to run the test suite:

$ yarn test

To test and check coverage use the cover script:

$ yarn cover

A full coverage report will be generated on test/coverage folder.

Contributing

Please create a PR with a description of the changes, its motivation and impacted areas, making sure the build passes.

Release

$ yarn release [<version> | major | minor | patch]

License

MIT

FAQs

Package last updated on 09 Jan 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc