New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

redis-errors

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

redis-errors - npm Package Compare versions

Comparing version

to
1.1.0

16

lib/errors.js

@@ -41,6 +41,20 @@ 'use strict'

class AbortError extends RedisError {
get name () {
return this.constructor.name
}
}
class InterruptError extends AbortError {
get name () {
return this.constructor.name
}
}
module.exports = {
RedisError,
ParserError,
ReplyError
ReplyError,
AbortError,
InterruptError
}

3

package.json
{
"name": "redis-errors",
"version": "1.0.0",
"version": "1.1.0",
"description": "Error classes used in node_redis",

@@ -27,3 +27,2 @@ "main": "index.js",

"devDependencies": {
"buffer-from": "^0.1.1",
"istanbul": "^0.4.0",

@@ -30,0 +29,0 @@ "mocha": "^3.1.2",

@@ -1,2 +0,1 @@

[![Build Status](https://travis-ci.org/NodeRedis/redis-errors.png?branch=master)](https://travis-ci.org/NodeRedis/redis-errors)
[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/)

@@ -6,3 +5,4 @@

All error classes used in [node_redis](https://github.com/NodeRedis/node_redis) from v.3.0.0 are in here. They can be required as needed.
All error classes used in [node_redis](https://github.com/NodeRedis/node_redis)
from v.3.0.0 are in here. They can be required as needed.

@@ -18,13 +18,25 @@ ## Install

```js
const { RedisError, ReplyError } = require('redis-errors');
const { ReplyError, InterruptError } = require('redis-errors');
// Using async await
try {
return client.set('foo') // Missing value
await client.set('foo') // Missing value
} catch (err) {
if (err instanceof InterruptError) {
console.error('Command might have been processed')
}
if (err instanceof ReplyError) {
console.log(err)
// ...
}
throw err
}
// Using callbacks
client.set('foo', (err, res) => {
if (err) {
if (err instanceof InterruptError) {
// ...
}
}
})
```

@@ -34,10 +46,74 @@

* `RedisError` sub class of Error
* `ReplyError` sub class of RedisError
* `ParserError` sub class of RedisError
All errors returned by NodeRedis use own Error classes. You can distinguish
different errors easily by checking for these classes.
All Redis errors will be returned as `ReplyErrors` while a parser error is returned as `ParserError`.
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 `RedisError`s.
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](./LICENSE)