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

errorish

v2.0.0

Published

When you have an error-ish but what you really want is an Error

Downloads

7,840

Readme

Errorish

Version Types License

When you have an error-ish but what you really want is an Error.

Install

npm install errorish

Use cases

There are three main use cases for Errorish:

Usage

See complete documentation.

  • Exception is an Error extending class with additional label, error and data fields.
  • Utils:
    • ensure ensures any is an Error, otherwise creating one -it can optionally include a normalization step, enabled by default.
    • normalize ensures an Error has a message, name, and stack properties -filling them if they're not defined.
    • capture runs Error.captureStackTrace if running in V8 to clean up the error stack trace.

Exception

See documentation for Exception.

Exception is an Error extending class that can store an identifying label, the source error that caused it and/or additional associated data. Exception also comes with several static and instance methods.

import { Exception } from 'errorish';

try {
  try {
    throw new Error('Source');
  } catch (err) {
    // throws with label
    throw new Exception(['label', 'message'], err, { code: 401 });
  }
} catch (err) {
  // throws without label
  throw new Exception(err.message, err, { code: 500 })
}

Utils

ensure

See documentation for ensure.

Ensure will return its first argument if an instance of Error is passed as such, otherwise instantiating and returning an Exception.

import { ensure } from 'errorish';

ensure('foo'); // Error: foo
ensure(new Error('foo')); // Error: foo
ensure({ message: 'foo' }); // Error: foo

normalize

See documentation for normalize.

Normalization fills an error's message, name, and stack property when empty. It's performed by default by ensure, but it can also be run independently.

import { normalize } from 'errorish';

normalize(new Error()); // Error: An error occurred
normalize(new Error(), { message: 'Foo bar' }); // Error: Foo bar

capture

See documentation for capture.

Captures the stack trace on Node and Chromium browsers.

import { capture } from 'errorish';

capture(new Error());