Skip to content

Instantly share code, notes, and snippets.

@davidguttman
Created September 13, 2013 23:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save davidguttman/6557449 to your computer and use it in GitHub Desktop.
Save davidguttman/6557449 to your computer and use it in GitHub Desktop.
What async level-hooks could look like
var LevelUp = require('levelup');
var Sublevel = require('level-sublevel')
var dbLoc = './test'
var opts = {valueEncoding: 'json'}
var db = Sublevel(LevelUp(dbLoc, opts));
var pageviews = db.sublevel('pageviews')
var sessions = db.sublevel('sessions')
var updateSession = function(current, prev, cb) {
var revenueChange = current.revenue - prev.revenue
sessions.get(current.sessionId, function(err, session) {
session.revenue += revenueChange
sessions.put(current.sessionId, session, cb)
})
}
pageviews.pre(function(change, add) {
var current = change.value
pageviews.get(change.key, function(err, prev) {
if equals(current, prev) {
add(false)
} else {
updateSession(current, prev)
add(true) // ?
}
})
})
@davidguttman
Copy link
Author

@dominictarr: re: async hooks in ##leveldb

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment