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.2.0 to 0.3.0

6

level-ttl.js

@@ -152,2 +152,7 @@ const after = require('after')

, ttl = function (db, key, ttl, callback) {
if (ttl > 0 && key !== null && key !== undefined)
ttlon(db, key, ttl, callback)
}
, del = function (db, key, options, callback) {

@@ -230,2 +235,3 @@ var done

db[options.methodPrefix + 'batch'] = batch.bind(null, db)
db[options.methodPrefix + 'ttl'] = ttl.bind(null, db)
// we must intercept close()

@@ -232,0 +238,0 @@ db['close'] = close.bind(null, db)

16

package.json

@@ -8,3 +8,3 @@ {

]
, "version" : "0.2.0"
, "version" : "0.3.0"
, "homepage" : "https://github.com/rvagg/node-level-ttl"

@@ -14,3 +14,3 @@ , "authors" : [

]
, "keywords" : [ "leveldb", "levelup", "ttl" ]
, "keywords" : [ "leveldb", "levelup", "ttl", "whoa dude!" ]
, "main" : "./level-ttl.js"

@@ -22,5 +22,5 @@ , "repository" : {

, "dependencies" : {
"after" : "~0.7.0"
, "level-sublevel" : "~4.7.0"
, "xtend" : "~2.0.3"
"after" : "~0.8.1"
, "level-sublevel" : "~4.7.1"
, "xtend" : "~2.0.6"
}

@@ -31,4 +31,4 @@ , "peerDependencies" : {

"tap" : "*"
, "level" : "*"
, "rimraf" : "~2.1.4"
, "level" : "*"
, "rimraf" : "*"
}

@@ -39,2 +39,2 @@ , "scripts" : {

, "license" : "MIT"
}
}

@@ -32,2 +32,9 @@ # Level TTL [![Build Status](https://secure.travis-ci.org/rvagg/node-level-ttl.png)](http://travis-ci.org/rvagg/node-level-ttl)

Alternatively, for a lower write-footprint you can use the `ttl()` method that is added to your LevelUP instance which can serve to insert or update a ttl for any given key in the database (even if that key doesn't exist but may in the future! Crazy!).
```js
db.put('foo', 'bar', function (err) { /* .. */ })
db.ttl(1000 * 60 * 60, function (err) { /* .. */ })
```
**Level TTL** uses an internal scan every 10 seconds by default, this limits the available resolution of your TTL values, possibly delaying a delete for up to 10 seconds. The resolution can be tuned by passing the `'checkFrequency'` option to the `ttl()` initialiser.

@@ -34,0 +41,0 @@

@@ -234,2 +234,43 @@ const test = require('tap').test

ltest('test prolong entry life with ttl(key, ttl)', function (db, t, createReadStream) {
var ttlBar = function () {
db.ttl('bar', 40)
return Date.now()
}
, verify = function (base, delay) {
setTimeout(function () {
db2arr(createReadStream, t, function (err, arr) {
t.notOk(err, 'no error')
var ts = base + 37
, i = 0
// allow +/- 3ms leeway, allow for processing speed and Node timer inaccuracy
for (; i < 6 && arr[3] && arr[3].value; i++) {
if (arr[3] && arr[3].value == String(ts))
break
ts++
}
t.deepEqual(arr, [
{ key: 'bar', value: 'barvalue' }
, { key: 'foo', value: 'foovalue' }
, { key: 'ÿttlÿ' + ts + 'ÿbar', value: 'bar' }
, { key: 'ÿttlÿbar', value: String(ts) }
])
})
}, delay)
}
, retest = function (delay) {
setTimeout(function () {
var base = ttlBar()
verify(base, 10)
}, delay)
}
, i
db.put('foo', 'foovalue')
db.put('bar', 'barvalue')
for (i = 0; i < 200; i += 20)
retest(i)
setTimeout(t.end.bind(t), 300)
})
ltest('test del', function (db, t, createReadStream) {

@@ -236,0 +277,0 @@ var verify = function (base, delay) {

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