Comparing version 0.0.1 to 0.2.0
@@ -11,5 +11,10 @@ const after = require('after') | ||
, subBatch = [] | ||
, query = { | ||
keyEncoding: 'utf8' | ||
, valueEncoding: 'utf8' | ||
, end: String(Date.now()) | ||
} | ||
db._ttl._checkInProgress = true | ||
db._ttl.sub.createReadStream({ end: String(Date.now()) }) | ||
db._ttl.sub.createReadStream(query) | ||
.on('data', function (data) { | ||
@@ -233,2 +238,2 @@ subBatch.push({ type: 'del', key: data.value }) | ||
module.exports = setup | ||
module.exports = setup |
{ | ||
"name" : "level-ttl" | ||
, "description" : "Adds a 'ttl' option to LevelUP for puts and batches" | ||
, "version" : "0.0.1" | ||
, "contributors" : [ | ||
"Rod Vagg <r@va.gg> (https://github.com/rvagg)" | ||
, "Matteo Collina <matteo.collina@gmail.com> (https://github.com/mcollina)" | ||
] | ||
, "version" : "0.2.0" | ||
, "homepage" : "https://github.com/rvagg/node-level-ttl" | ||
@@ -17,3 +21,3 @@ , "authors" : [ | ||
"after" : "~0.7.0" | ||
, "level-sublevel" : "~4.6.1" | ||
, "level-sublevel" : "~4.7.0" | ||
, "xtend" : "~2.0.3" | ||
@@ -25,3 +29,3 @@ } | ||
"tap" : "*" | ||
, "levelup" : "~0.8.0" | ||
, "level" : "*" | ||
, "rimraf" : "~2.1.4" | ||
@@ -33,2 +37,2 @@ } | ||
, "license" : "MIT" | ||
} | ||
} |
55
test.js
const test = require('tap').test | ||
, rimraf = require('rimraf') | ||
, levelup = require('levelup') | ||
, levelup = require('level') | ||
, ttl = require('./') | ||
var ltest = function (name, fn) { | ||
var ltest = function (name, fn, opts) { | ||
test(name, function (t) { | ||
@@ -19,3 +19,3 @@ var location = '__ttl-' + Math.random() | ||
levelup(location, function (err, _db) { | ||
levelup(location, opts, function (err, _db) { | ||
t.notOk(err, 'no error on open()') | ||
@@ -31,5 +31,5 @@ | ||
function db2arr (createReadStream, t, callback) { | ||
function db2arr (createReadStream, t, callback, opts) { | ||
var arr = [] | ||
createReadStream() | ||
createReadStream(opts) | ||
.on('data', arr.push.bind(arr)) | ||
@@ -277,2 +277,45 @@ .on('error', function (err) { | ||
setTimeout(t.end.bind(t), 300) | ||
}) | ||
}) | ||
ltest('test del with db value encoding', function (db, t, createReadStream) { | ||
var verify = function (base, delay) { | ||
setTimeout(function () { | ||
db2arr(createReadStream, t, function (err, arr) { | ||
t.notOk(err, 'no error') | ||
if (base == -1) { | ||
// test complete deletion | ||
t.deepEqual(arr, [ | ||
{ key: 'foo', value: "{\"v\":\"foovalue\"}" } | ||
]) | ||
} else { | ||
var ts = base + 197 | ||
, i = 0 | ||
// allow +/- 10ms leeway, allow for processing speed and Node timer inaccuracy | ||
for (; i < 10 && arr[3] && arr[3].value; i++) { | ||
if (arr[3] && arr[3].value == String(ts)) | ||
break | ||
ts++ | ||
} | ||
t.deepEqual(arr, [ | ||
{ key: 'bar', value: "{\"v\":\"barvalue\"}" } | ||
, { key: 'foo', value: "{\"v\":\"foovalue\"}" } | ||
, { key: 'ÿttlÿ' + ts + 'ÿbar', value: 'bar' } | ||
, { key: 'ÿttlÿbar', value: String(ts) } | ||
]) | ||
} | ||
}, { valueEncoding: "utf8" }) | ||
}, delay) | ||
} | ||
, base | ||
db.put( 'foo', { v: 'foovalue' }) | ||
base = Date.now() | ||
db.put('bar', { v: 'barvalue' }, { ttl: 200 }) | ||
verify(base, 20) | ||
setTimeout(function () { | ||
db.del('bar') | ||
}, 50) | ||
// should not exist at all by 70 | ||
verify(-1, 70) | ||
setTimeout(t.end.bind(t), 300) | ||
}, { keyEncoding: 'utf8', valueEncoding: 'json' }) |
Sorry, the diff of this file is not supported yet
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
No contributors or author data
MaintenancePackage does not specify a list of contributors or an author in package.json.
Found 1 instance in 1 package
24486
495
2
+ Addedlevel-sublevel@4.7.1(transitive)
- Removedlevel-sublevel@4.6.13(transitive)
Updatedlevel-sublevel@~4.7.0