Socket
Socket
Sign inDemoInstall

level-ttl

Package Overview
Dependencies
Maintainers
1
Versions
25
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

level-ttl - npm Package Compare versions

Comparing version 0.0.1 to 0.2.0

9

level-ttl.js

@@ -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"
}
}
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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc