Awesome
lexicographic-integer-encoding
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
TypeError
if input is not a number or ifNaN
- A
RangeError
if 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-integer
plus a suffix if input is the same as the last call;monotonic-lexicographic-timestamp
:unique-lexicographic-integer
withDate.now()
to get a monotonically increasing timestamp with lexicographic order.
install
With npm do:
npm install lexicographic-integer-encoding
license
MIT © Vincent Weevers