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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@nuov.io/error

v1.1.63

Published

The @nuov.io error library.

Readme

Error

Description

Error is a lightweight TypeScript module that provides abstract and typed error classes for the @nuov.io ecosystem.

Installation

npm install @nuov.io/error

Usage

AbstractError

The AbstractError class is the base class other errors in the module. It preserves the standard Error constructor signature and assigns the name of the concrete class to the name property.

/** The class AbstractError. */
export abstract class AbstractError extends Error {
  /**
   * Constructor.
   * @param message - the message
   * @param options - the options
   */
  public constructor(message?: string, options?: ErrorOptions) {
    super(message, options);
    this.name = this.constructor.name;
  }
}

/** The class BadRequestError. */
export class BadRequestError extends AbstractError {
  /** The http status code. */
  public static get HTTP_STATUS_CODE(): number {
    return 400;
  }
}

const error: Error = new BadRequestError("Something isn't right...");
console.log(error.name); // "BadRequestError"
console.log(error.message); // "Something isn't right..."
console.log(error instanceof Error); // true
console.log(error instanceof AbstractError); // true
console.log(error instanceof ValidationError); // true

Chaining causes

Because AbstractError accepts the standard ErrorOptions, errors can be chained with a cause:

import { BadRequestError } from "@nuov.io/error";

const causeError: Error = new Error("The property 'name' is blank.");
const options: ErrorOptions = { cause: causeError };
const error: Error = new BadRequestError(
  "The object could not be added.",
  options,
);
console.log(error.cause); // Error: "The property 'name' is blank."

API Reference

AbstractError (abstract class)

Constructor

public constructor(message?: string, options?: ErrorOptions) {
  // see above
}

| Parameter | Type | Description | | --------- | -------------- | ----------------------- | | message | string | Optional error message. | | options | ErrorOptions | Optional error options. |

HTTP status codes

| Class | Status Code | | ------------------------------------------ | ----------- | | BadRequestError.HTTP_STATUS_CODE | 400 | | UnauthorizedError.HTTP_STATUS_CODE | 401 | | ForbiddenError.HTTP_STATUS_CODE | 403 | | NotFoundError.HTTP_STATUS_CODE | 404 | | NotModifiedError.HTTP_STATUS_CODE | 304 | | LockedError.HTTP_STATUS_CODE | 423 | | ServiceUnavailableError.HTTP_STATUS_CODE | 503 |

Each class follows the same constructor signature as AbstractError:

new ErrorClass(message?: string, options?: ErrorOptions)

License

MIT License