Skip to content

Commit 3acf3dd

Browse files
authored
Merge pull request #28 from CKarper/RedisError
feat: Add top level error type
2 parents 2563b1e + 4dd597a commit 3acf3dd

File tree

4 files changed

+27
-7
lines changed

4 files changed

+27
-7
lines changed

index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22

33
module.exports = require('./lib/parser')
44
module.exports.ReplyError = require('./lib/replyError')
5+
module.exports.RedisError = require('./lib/redisError')

lib/redisError.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
'use strict'
2+
3+
var util = require('util')
4+
5+
function RedisError (message) {
6+
Error.call(this, message)
7+
Error.captureStackTrace(this, this.constructor)
8+
Object.defineProperty(this, 'message', {
9+
value: message || '',
10+
writable: true
11+
})
12+
}
13+
14+
util.inherits(RedisError, Error)
15+
16+
Object.defineProperty(RedisError.prototype, 'name', {
17+
value: 'RedisError',
18+
writable: true
19+
})
20+
21+
module.exports = RedisError

lib/replyError.js

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,16 @@
11
'use strict'
22

33
var util = require('util')
4+
var RedisError = require('./redisError')
45

56
function ReplyError (message, newLimit) {
67
var limit = Error.stackTraceLimit
78
Error.stackTraceLimit = newLimit || 2
8-
Error.call(this, message)
9-
Error.captureStackTrace(this, this.constructor)
9+
RedisError.call(this, message)
1010
Error.stackTraceLimit = limit
11-
Object.defineProperty(this, 'message', {
12-
value: message || '',
13-
writable: true
14-
})
1511
}
1612

17-
util.inherits(ReplyError, Error)
13+
util.inherits(ReplyError, RedisError)
1814

1915
Object.defineProperty(ReplyError.prototype, 'name', {
2016
value: 'ReplyError',

test/parsers.spec.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ var assert = require('assert')
66
var JavascriptParser = require('../')
77
var HiredisParser = require('../lib/hiredis')
88
var ReplyError = JavascriptParser.ReplyError
9+
var RedisError = JavascriptParser.RedisError
910
var parsers = [HiredisParser, JavascriptParser]
1011

1112
// Mock the not needed return functions
@@ -320,6 +321,7 @@ describe('parsers', function () {
320321
assert.strictEqual(typeof this.log, 'function')
321322
assert.strictEqual(err.message, 'Protocol error, got "a" as reply type byte')
322323
assert.strictEqual(err.name, 'ReplyError')
324+
assert(err instanceof RedisError)
323325
assert(err instanceof ReplyError)
324326
assert(err instanceof Error)
325327
replyCount++

0 commit comments

Comments
 (0)