Skip to content

Commit 78936ac

Browse files
feat(parser): update to latest Redis parser & errors (#1470)
* Update redis errors and redis parser * Fix lint errors * Add node 12 to travis ci * Add appveyor node 12 * Fix some of existing errors This drops support for hiredis.
1 parent 1f082ac commit 78936ac

File tree

9 files changed

+51
-48
lines changed

9 files changed

+51
-48
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ node_js:
1414
- "4"
1515
- "6"
1616
- "8"
17+
- "12"
1718
after_success: npm run coveralls
1819
before_script:
1920
# Add an IPv6 config - see the corresponding Travis issue

appveyor.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ environment:
88
- nodejs_version: "4"
99
- nodejs_version: "6"
1010
- nodejs_version: "8"
11+
- nodejs_version: "12"
1112

1213
pull_requests:
1314
do_not_increment_build_number: true

benchmarks/diff_multi_bench_output.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
var fs = require('fs');
44
var metrics = require('metrics');
5-
// `node diff_multi_bench_output.js beforeBench.txt afterBench.txt`
5+
// `node diff_multi_bench_output.js beforeBench.txt afterBench.txt`
66
var file1 = process.argv[2];
77
var file2 = process.argv[3];
88

examples/streams.js

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -5,43 +5,43 @@ var client1 = redis.createClient();
55
var client2 = redis.createClient();
66
var client3 = redis.createClient();
77

8-
client1.xadd('mystream', '*', 'field1', 'm1', function (err) {
9-
if(err){
10-
return console.error(err);
11-
}
12-
client1.xgroup('CREATE', 'mystream', 'mygroup', '$', function (err) {
13-
if(err){
14-
return console.error(err);
15-
}
16-
});
17-
18-
client2.xreadgroup('GROUP', 'mygroup', 'consumer', 'Block', 1000, 'NOACK',
19-
'STREAMS', 'mystream', '>', function (err, stream) {
20-
if(err){
21-
return console.error(err);
22-
}
23-
console.log('client2 ' + stream);
24-
});
25-
26-
client3.xreadgroup('GROUP', 'mygroup', 'consumer', 'Block', 1000, 'NOACK',
27-
'STREAMS', 'mystream', '>', function (err, stream) {
28-
if(err){
29-
return console.error(err);
30-
}
31-
console.log('client3 ' + stream);
32-
});
33-
34-
35-
client1.xadd('mystream', '*', 'field1', 'm2', function (err) {
36-
if(err){
37-
return console.error(err);
38-
}
39-
});
40-
41-
client1.xadd('mystream', '*', 'field1', 'm3', function (err) {
42-
if(err){
43-
return console.error(err);
44-
}
45-
});
8+
client1.xadd('mystream', '*', 'field1', 'm1', function (err) {
9+
if (err) {
10+
return console.error(err);
11+
}
12+
client1.xgroup('CREATE', 'mystream', 'mygroup', '$', function (err) {
13+
if (err) {
14+
return console.error(err);
15+
}
16+
});
17+
18+
client2.xreadgroup('GROUP', 'mygroup', 'consumer', 'Block', 1000, 'NOACK',
19+
'STREAMS', 'mystream', '>', function (err, stream) {
20+
if (err) {
21+
return console.error(err);
22+
}
23+
console.log('client2 ' + stream);
24+
});
25+
26+
client3.xreadgroup('GROUP', 'mygroup', 'consumer', 'Block', 1000, 'NOACK',
27+
'STREAMS', 'mystream', '>', function (err, stream) {
28+
if (err) {
29+
return console.error(err);
30+
}
31+
console.log('client3 ' + stream);
32+
});
33+
34+
35+
client1.xadd('mystream', '*', 'field1', 'm2', function (err) {
36+
if (err) {
37+
return console.error(err);
38+
}
39+
});
40+
41+
client1.xadd('mystream', '*', 'field1', 'm3', function (err) {
42+
if (err) {
43+
return console.error(err);
44+
}
45+
});
4646

4747
});

index.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ var Queue = require('denque');
99
var errorClasses = require('./lib/customErrors');
1010
var EventEmitter = require('events');
1111
var Parser = require('redis-parser');
12+
var RedisErrors = require('redis-errors');
1213
var commands = require('redis-commands');
1314
var debug = require('./lib/debug');
1415
var unifyOptions = require('./lib/createClient');
@@ -1090,9 +1091,9 @@ exports.RedisClient = RedisClient;
10901091
exports.print = utils.print;
10911092
exports.Multi = require('./lib/multi');
10921093
exports.AbortError = errorClasses.AbortError;
1093-
exports.RedisError = Parser.RedisError;
1094-
exports.ParserError = Parser.ParserError;
1095-
exports.ReplyError = Parser.ReplyError;
1094+
exports.RedisError = RedisErrors.RedisError;
1095+
exports.ParserError = RedisErrors.ParserError;
1096+
exports.ReplyError = RedisErrors.ReplyError;
10961097
exports.AggregateError = errorClasses.AggregateError;
10971098

10981099
// Add all redis commands / node_redis api to the client

lib/customErrors.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@
22

33
var util = require('util');
44
var assert = require('assert');
5-
var RedisError = require('redis-parser').RedisError;
5+
var RedisError = require('redis-errors').RedisError;
66
var ADD_STACKTRACE = false;
77

88
function AbortError (obj, stack) {
99
assert(obj, 'The options argument is required');
1010
assert.strictEqual(typeof obj, 'object', 'The options argument has to be of type object');
1111

12-
RedisError.call(this, obj.message, ADD_STACKTRACE);
1312
Object.defineProperty(this, 'message', {
1413
value: obj.message || '',
1514
configurable: true,

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@
2727
"dependencies": {
2828
"denque": "^1.2.3",
2929
"redis-commands": "^1.4.0",
30-
"redis-parser": "^2.6.0"
30+
"redis-errors": "^1.2.0",
31+
"redis-parser": "^3.0.0"
3132
},
3233
"engines": {
3334
"node": ">=0.10.0"

test/node_redis.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,7 @@ describe('The node_redis client', function () {
359359

360360
it('send_command with callback as args', function (done) {
361361
client.send_command('abcdef', function (err, res) {
362-
assert.strictEqual(err.message, "ERR unknown command 'abcdef'");
362+
assert.strictEqual(err.message, 'ERR unknown command `abcdef`, with args beginning with: ');
363363
done();
364364
});
365365
});

test/rename.spec.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ describe('rename commands', function () {
5050
});
5151

5252
client.get('key', function (err, reply) {
53-
assert.strictEqual(err.message, "ERR unknown command 'get'");
53+
assert.strictEqual(err.message, 'ERR unknown command `get`, with args beginning with: `key`, ');
5454
assert.strictEqual(err.command, 'GET');
5555
assert.strictEqual(reply, undefined);
5656
});
@@ -108,7 +108,7 @@ describe('rename commands', function () {
108108
multi.exec(function (err, res) {
109109
assert(err);
110110
assert.strictEqual(err.message, 'EXECABORT Transaction discarded because of previous errors.');
111-
assert.strictEqual(err.errors[0].message, "ERR unknown command 'get'");
111+
assert.strictEqual(err.errors[0].message, 'ERR unknown command `get`, with args beginning with: `key`, ');
112112
assert.strictEqual(err.errors[0].command, 'GET');
113113
assert.strictEqual(err.code, 'EXECABORT');
114114
assert.strictEqual(err.errors[0].code, 'ERR');

0 commit comments

Comments
 (0)