Lexicographically ordered integers for level(up). Wraps lexicographic-integer.
usage with level
const level = require('level') const lexint = require('lexicographic-integer-encoding')('hex') const db = level('./db', { keyEncoding: lexint }) db.put(2, 'example', (err) => { db.put(10, 'example', (err) => { // Without our encoding, the keys would sort as 10, 2. db.createKeyStream().on('data', console.log) // 2, 10 }) })
usage with levelup
const levelup = require('levelup') const encode = require('encoding-down') const leveldown = require('leveldown') const lexint = require('lexicographic-integer-encoding')('hex') const db = levelup(encode(leveldown('./db'), { keyEncoding: lexint }))
api
lexint = require('lexicographic-integer-encoding')(encoding, [options])
encoding(string, required):'hex'or'buffer'options.strict(boolean): opt-in to type-checking input. If true, encode will throw:- A
TypeErrorif input is not a number or ifNaN - A
RangeErrorif input is < 0 or >Number.MAX_SAFE_INTEGER
- A
Returns a level-codec compliant encoding object.
see also
lexicographic-integer: main encoding logicunique-lexicographic-integer:lexicographic-integerplus a suffix if input is the same as the last call;monotonic-lexicographic-timestamp:unique-lexicographic-integerwithDate.now()to get a monotonically increasing timestamp with lexicographic order.
install
With npm do:
npm install lexicographic-integer-encoding
license
MIT © Vincent Weevers