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

node-teapot

v3.1.1

Published

Utilities for working with HTTP status codes, errors, and more

Downloads

93

Readme

Teapot

Utilities for working with HTTP status codes, errors, and more.

npm version build status coverage status


Teapot is an HTTP utility library for JavaScript, which leverages the Node.js HTTP library. It provides the following:

  1. The ability to get an HTTP status code: teapot.status(404) and teapot.status('not found') would both return 404.
  2. Useful error classes to represent HTTP error codes:
    • HTTPError: Base class to represent an HTTP error
    • ClientError and ServerError: Classes to represent 4xx and 5xx errors
    • Classes for every unique HTTP error status code, ranging from NotImplementedError to PaymentRequiredError
  3. A function to generate one of the HTTP error classes from a status code: teapot.error(404) would return an instance of NotFoundError. Great when handling responses from third-party APIs, when you might not know what status codes to expect all the time.

TypeScript definitions are included as well.

Installation

With yarn:

$ yarn add node-teapot

With npm:

$ npm install node-teapot

Usage

Get a status code

There are a variety of ways to get a status code from a number or string message:

teapot.status.code(404); // 404
teapot.status.code('not implemented'); // 405

teapot.status.codes['BAD GATEWAY']; // 502

teapot.status.MOVED_PERMANENTLY; // 301

Get a canned status message

teapot.status[200]; // "OK"

Create an HTTP error

Teapot's errors are compatible with Koa and Express:

throw new teapot.InternalServerError('Oops! Something went wrong.');

Generate an error from a status code

teapot.error(500) // returns instance of InternalServerError
teapot.error(204) // throws error because 204 is not an error code

teapot.error(404, 'My custom message', { // custom message w/ misc. additional properties
   expose: true,
   data: {
      misc: 'blah',
   },
})

Contributing

See CONTRIBUTING.md for guidelines.

License

MIT License. See LICENSE file for details.