Comparing version 1.1.2 to 1.1.3
@@ -5,2 +5,6 @@ ## Changelog | ||
### v1.1.3 - May 2, 2015 | ||
* Fix buffer supporting in pipeline. Thanks to @AVVS. | ||
### v1.1.2 - May 2, 2015 | ||
@@ -7,0 +11,0 @@ |
@@ -6,2 +6,3 @@ 'use strict'; | ||
var Commander = require('./commander'); | ||
var fbuffer = require('flexbuffer'); | ||
var Promise = require('bluebird'); | ||
@@ -120,7 +121,23 @@ var utils = require('./utils'); | ||
var writePending = _this.replyPending = _this._queue.length; | ||
// TODO optimize buffer | ||
var bufferMode = false; | ||
var stream = { | ||
write: function (writable) { | ||
data += writable; | ||
if (writable instanceof Buffer) { | ||
bufferMode = true; | ||
} | ||
if (bufferMode) { | ||
if (typeof data === 'string') { | ||
var flexBuffer = new fbuffer.FlexBuffer(); | ||
flexBuffer.write(data); | ||
data = flexBuffer; | ||
} | ||
data.write(writable); | ||
} else { | ||
data += writable; | ||
} | ||
if (!--writePending) { | ||
if (bufferMode) { | ||
data = data.getBuffer(); | ||
} | ||
if (isCluster) { | ||
@@ -127,0 +144,0 @@ _this.redis.slots[sampleSlot].stream.write(data); |
{ | ||
"name": "ioredis", | ||
"version": "1.1.2", | ||
"version": "1.1.3", | ||
"description": "A delightful, performance-focused Redis client for Node and io.js", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
38
test.js
@@ -9,9 +9,17 @@ 'use strict'; | ||
var redis = new Redis(); | ||
redis.multi().set('foo').set('foo', 'new value').exec(function (err, results) { | ||
console.log('=', err); | ||
// err === new Error('...Transaction discarded because of previous errors.'); | ||
/* err is: { [ReplyError: EXECABORT Transaction discarded because of previous errors.] } | ||
res is undefined | ||
*/ | ||
// redis.pipeline().set(new Buffer('foo')).exec(function () { | ||
// console.dir(arguments, { depth: 10 }); | ||
// }); | ||
redis.pipeline().set('foo', 'bar').getBuffer('foo').exec(function () { | ||
console.log(arguments); | ||
// console.dir(arguments[1][0][0].command.args[0]); | ||
// console.dir(new Buffer('foo')); | ||
}); | ||
// redis.multi().set('foo').set('foo', 'new value').exec(function (err, results) { | ||
// console.log('=', err); | ||
// // err === new Error('...Transaction discarded because of previous errors.'); | ||
// /* err is: { [ReplyError: EXECABORT Transaction discarded because of previous errors.] } | ||
// res is undefined | ||
// */ | ||
// }); | ||
// var redis = new Redis(); | ||
@@ -132,12 +140,12 @@ | ||
var cluster = new Redis.Cluster([{ | ||
port: 6380, | ||
host: '127.0.0.1' | ||
}, { | ||
port: 6381, | ||
host: '127.0.0.1' | ||
}], { showFriendlyErrorStack: true }); | ||
// var cluster = new Redis.Cluster([{ | ||
// port: 6380, | ||
// host: '127.0.0.1' | ||
// }, { | ||
// port: 6381, | ||
// host: '127.0.0.1' | ||
// }], { showFriendlyErrorStack: true }); | ||
cluster.multi().set('foo', 'bar').get('foo2').exec(console.log); | ||
cluster.pipeline().set('foo', 'bar').get('foo2').exec(console.log); | ||
// cluster.multi().set('foo', 'bar').get('foo2').exec(console.log); | ||
// cluster.pipeline().set('foo', 'bar').get('foo2').exec(console.log); | ||
@@ -144,0 +152,0 @@ |
@@ -243,2 +243,27 @@ 'use strict'; | ||
it('should return the error successfully', function (done) { | ||
var called = false; | ||
var node1 = new MockServer(30001, function (argv) { | ||
if (argv[0] === 'cluster' && argv[1] === 'slots') { | ||
return [ | ||
[0, 16383, ['127.0.0.1', 30001]] | ||
]; | ||
} | ||
if (argv.toString() === 'get,foo,bar') { | ||
called = true; | ||
return new Error('Wrong arguments count'); | ||
} | ||
}); | ||
var cluster = new Redis.Cluster([ | ||
{ host: '127.0.0.1', port: '30001' } | ||
]); | ||
cluster.get('foo', 'bar', function (err, result) { | ||
expect(called).to.eql(true); | ||
expect(err.message).to.match(/Wrong arguments count/); | ||
cluster.disconnect(); | ||
disconnect([node1], done); | ||
}); | ||
}); | ||
it('should get value successfully', function (done) { | ||
@@ -245,0 +270,0 @@ var node1 = new MockServer(30001, function (argv) { |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
205370
4692