npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@abs-warranty/http-errors

v2.0.4

Published

Custom HTTP Errors

Downloads

641

Readme

Maintainability Test Coverage

Custom HTTP Errors

To Install:

yarn add @abs-warranty/http-errors

Example Usage:

const { NotFoundError } = require('@abs-warranty/http-errors')

throw new NotFoundError('<yourMessageHere>')

Available Errors:

| Error | Status Code | Message | Description | | ------------------------ | ----------- | --------------------- | --------------------------------------------------------------------------- | | BadReqeustError | 400 | bad request | Custom error denoting a bad request was made | | UnauthorizedError | 401 | unauthorized | Custom error denoting the user is not authorized | | ForbiddenError | 403 | forbidden | Custom error denoting the user has insufficient privileges | | NotFoundError | 404 | not found | Custom error denoting a resource has not been found | | NotAllowedError | 405 | method not allowed | Custom error denoting the method used is not allowed for this endpoint | | ConflictError | 409 | conflict | Custom error denoting a resource is in conflict | | IAmATeapotError | 418 | i am a teapot | Custom error denoting that the machine really is actually a teapot 🍵 | | EnhanceYourCalmError | 420 | enhance your calm | Custom error denoting the user must enhance their frickin' calm, maaaan. 🌿 | | UnprocessableEntityError | 422 | unprocessable entity | Custom error denoting an unprocessable entity | | InternalServerError | 500 | internal server error | Custom error denoting an internal server error |

Error Handler Usage:

// Import and create express app
const express = require('express')
const app = express()
// Import HttpErrors middleware
const { NotFoundError } = require('@abs-warranty/http-errors')
const { errorHandler, notFoundHandler, axiosErrorHandler } = require('@abs-warranty/http-errors/middleware')

// All routes are placed here
app.get('/example', (req, res, next) => {
  throw new NotFoundError('Resource not found')
})

// Handle invalid endpoints
app.use(notFoundHandler)

// Axios error handler converts axios errors to http errors
app.use(axiosErrorHandler)

// Catch-all error handler must be used as last middleware in application
app.use(errorHandler)

Note: These middleware must be placed after all routes have been added to express application