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

redis-errors

v1.2.0

Published

Error classes used in node_redis

Downloads

25,369,327

Readme

js-standard-style

redis-errors

All error classes used in node_redis from v.3.0.0 are in here. They can be required as needed.

Install

Install with NPM:

npm install redis-errors

Usage

const { ReplyError, InterruptError } = require('redis-errors');

// Using async await
try {
  await client.set('foo') // Missing value
} catch (err) {
  if (err instanceof InterruptError) {
    console.error('Command might have been processed')
  }
  if (err instanceof ReplyError) {
    // ...
  }
  throw err
}

// Using callbacks
client.set('foo', (err, res) => {
  if (err) {
    if (err instanceof InterruptError) {
      // ...
    }
  }
})

Error classes

All errors returned by NodeRedis use own Error classes. You can distinguish different errors easily by checking for these classes.

To know what caused the error they might contain properties to know in more detail what happened.

Each error contains a message, a name and a stack property. Please be aware that the stack might not be useful due to the async nature and is in those cases therefore limited to two frames.

There might be more not yet documented properties as well. Please feel free to open a pull request to document those as well.

RedisError

Properties:

Properties depend on the individual error.

All errors returned by NodeRedis (client) are RedisErrors.
Subclass of Error

ReplyError

Properties:

  • args: The arguments passed to the command.
  • command: The command name.
  • code: The Redis error code. Redis itself uses some internal error codes.

All errors returned by Redis itself (server) will be a ReplyError.
Subclass of RedisError

ParserError

Properties:

  • buffer: The raw buffer input stringified.
  • offset: The character count where the parsing error occurred.

Parsing errors are returned as ParserError.
Subclass of RedisError Note: If you encounter one of these please report that error including the attached offset and buffer properties!

AbortError

Properties:

  • args: The arguments passed to the command.
  • command: The command name.

If a command was not yet executed but rejected, it'll return a AbortError.
Subclass of RedisError

InterruptError

Properties:

  • args: The arguments passed to the command.
  • command: The command name.
  • origin: The original error that caused the interrupt

All executed commands that could not fulfill (e.g. network drop while executing) return a InterruptError.
Subclass of AbortError
Note: Interrupt errors can happen for multiple reasons that are out of the scope of NodeRedis itself. There is nothing that can be done on library side to prevent those.

License

MIT