level-codec
Advanced tools
Comparing version 5.5.0 to 6.0.0
24
index.js
var encodings = require('./lib/encodings'); | ||
var Decoder = require('./lib/decoder'); | ||
@@ -76,4 +75,23 @@ module.exports = Codec; | ||
Codec.prototype.createDecodeStream = function(opts){ | ||
return new Decoder(this, opts); | ||
Codec.prototype.createStreamDecoder = function(opts){ | ||
var self = this; | ||
if (opts.keys && opts.values) { | ||
return function(key, value){ | ||
return { | ||
key: self.decodeKey(key, opts), | ||
value: self.decodeValue(value, opts) | ||
}; | ||
}; | ||
} else if (opts.keys) { | ||
return function(key) { | ||
return self.decodeKey(key, opts); | ||
}; | ||
} else if (opts.values) { | ||
return function(_, value){ | ||
return self.decodeValue(value, opts); | ||
} | ||
} else { | ||
return function(){}; | ||
} | ||
}; | ||
@@ -80,0 +98,0 @@ |
{ | ||
"name": "level-codec", | ||
"repository": "Level/codec", | ||
"version": "5.5.0", | ||
"version": "6.0.0", | ||
"description": "Levelup's encoding logic", | ||
@@ -13,6 +13,3 @@ "license": "MIT", | ||
}, | ||
"dependencies": { | ||
"level-errors": "^1.0.3", | ||
"readable-stream": "^1.0.33" | ||
} | ||
"dependencies": {} | ||
} |
@@ -46,5 +46,5 @@ | ||
### #createDecodeStream([opts]) | ||
### #createStreamDecoder([opts]) | ||
Create a transform stream that decodes incoming key value pairs, passed from readable streams created by levelup's `create*Stream`. | ||
Create a function with signature `(key, value)`, that for each key/value pair returned from a levelup read stream returns the decoded value to be emitted. | ||
@@ -51,0 +51,0 @@ ### #keyAsBuffer([opts]) |
var test = require('tape'); | ||
var Codec = require('..'); | ||
var PassThrough = require('readable-stream').PassThrough; | ||
test('decoder', function(t){ | ||
test('createStreamDecoder', function(t){ | ||
var codec = new Codec({ keyEncoding: 'hex' }); | ||
t.test('keys and values', function(t){ | ||
var decoder = codec.createDecodeStream({ | ||
var decoder = codec.createStreamDecoder({ | ||
valueEncoding: 'json', | ||
@@ -14,46 +13,25 @@ keys: true, | ||
}); | ||
decoder.on('data', function(kv){ | ||
t.deepEqual(kv, { | ||
key: '686579', | ||
value: 'you' | ||
}); | ||
t.end(); | ||
t.deepEqual(decoder(new Buffer('hey'), '"you"'), { | ||
key: '686579', | ||
value: 'you' | ||
}); | ||
var source = PassThrough({ objectMode: true }); | ||
source.push({ key: new Buffer('hey'), value: '"you"' }); | ||
source.pipe(decoder); | ||
t.end(); | ||
}); | ||
t.test('keys', function(t){ | ||
var decoder = codec.createDecodeStream({ | ||
var decoder = codec.createStreamDecoder({ | ||
keys: true | ||
}); | ||
decoder.on('data', function(key){ | ||
t.equal(key, '686579'); | ||
t.end(); | ||
}); | ||
var source = PassThrough({ objectMode: true }); | ||
source.push({ key: new Buffer('hey') }); | ||
source.pipe(decoder); | ||
t.equal(decoder(new Buffer('hey')), '686579'); | ||
t.end(); | ||
}); | ||
t.test('values', function(t){ | ||
var decoder = codec.createDecodeStream({ | ||
var decoder = codec.createStreamDecoder({ | ||
valueEncoding: 'hex', | ||
values: true | ||
}); | ||
decoder.on('data', function(value){ | ||
t.equal(value, '686579'); | ||
t.end(); | ||
}); | ||
var source = PassThrough({ objectMode: true }); | ||
source.push({ value: new Buffer('hey') }); | ||
source.pipe(decoder); | ||
t.equal(decoder(null, new Buffer('hey')), '686579'); | ||
t.end(); | ||
}); | ||
}); |
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
0
11957
14
304
- Removedlevel-errors@^1.0.3
- Removedreadable-stream@^1.0.33
- Removedcore-util-is@1.0.3(transitive)
- Removederrno@0.1.8(transitive)
- Removedinherits@2.0.4(transitive)
- Removedisarray@0.0.1(transitive)
- Removedlevel-errors@1.1.2(transitive)
- Removedprr@1.0.1(transitive)
- Removedreadable-stream@1.1.14(transitive)
- Removedstring_decoder@0.10.31(transitive)