ite.next(function (err, key, value) { if (err) return cb(err) if (!key) return end(ite, cb) key = key.toString() var i = key.lastIndexOf('!') var index = lexint.unpack(key.slice(i + 1), 'hex') var j = key.lastIndexOf('!', i - 1) var change = lexint.unpack(key.slice(j + 1, i), 'hex') var dbKey = value.toString() i = dbKey.lastIndexOf('!', dbKey.lastIndexOf('!') - 1) j = dbKey.lastIndexOf('!', i - 1) down.get(dbKey, function (err, val) { if (err) return cb(err) cb(null, { change: change, index: index, key: dbKey.slice(j + 1, i), value: deleted(val) ? null : val }) }) })
// example: ÿdÿffe33ee5ÿrÿfc0148ÿsÿ01 function decodeKey(key) { var parts = key.split('ÿ') var revs = parts[4].split('-') return { '_id': parts[2], '_rev': lexint.unpack(revs[0], 'hex') + '-' + revs[1], '_seq': lexint.unpack(parts[6], 'hex') } }
function(data, enc, cb) { var key = data.slice(self.prefix.length) var peer = key.slice(0, key.indexOf('!')) var seq = lexint.unpack(key.slice(peer.length+1), 'hex') cb(null, {peer:peer, seq:seq}) }
collect(db.createKeyStream({gt: CHANGES, lt: CHANGES + '~', reverse: true, limit: 1}), function (_, keys) { self.changes = Math.max(self.changes, keys && keys.length ? lexint.unpack(keys[0].split('!').pop(), 'hex') : 0) if (self.id) return release() getId(function (_, id) { self.id = id || cuid() release() }) })
db.createReadStream(opts).pipe(through(function (row) { var sp = row.key.split('!'); var doc = { user: sp[0], time: lexi.unpack(sp[1]), timetext: row.value.time, text: row.value.text }; this.queue(JSON.stringify(doc) + '\n'); })).pipe(res);
function unpack(val) { if (typeof val === 'undefined') throw new Error('cannot unpack undefined value') return lexint.unpack(val, 'hex') }
var unpack = function(n) { return lexint.unpack(n, 'hex') }
collect(rs, function(err, keys) { if (err) return cb(err) if (!keys.length) return cb(null, 0) cb(null, lexint.unpack(keys[0].slice(keys[0].lastIndexOf('!')+1), 'hex')) })
ite.end(function () { if (err) return cb(err) that.changes = key ? lexint.unpack(key.toString().slice(pf.length + 'changes!'.length).split('!')[0], 'hex') : 0 cb(null, db.db, db) })