pathkey
v1.1.0
Published
Generate keys from objects and parse keys back into objects. Useful for working with kv stores like leveldb and redis.
Downloads
733
Readme
PathKey
Generate keys from objects and parse keys back into objects. Useful for working with kv stores like leveldb and redis.
Example
var PathKey = require('pathkey')
var pk = PathKey({
pathKey: '_path',
pathSep: '/',
keySep: '\xff'
})
var obj = {
_path: 'companyId/email/name',
companyId: 'stock-market',
email: '[email protected]',
name: 'Vincent Adultman'
}
var key = pk.create(obj)
console.log(key)
// 'companyId/email/nameÿstock-marketÿ[email protected]ÿVincent Adultman'
var parsed = pk.parse(key)
console.log('parsed', parsed)
// { _path: 'companyId/email/name',
// companyId: 'stock-market',
// email: '[email protected]',
// name: 'Vincent Adultman' }
API
Pathkey(options)
// defaults
var pk = PathKey({
pathKey: 'level',
pathSep: '-',
keySep: '\xff'
})
Options
pathKey
: the attribute of the object (when used withpathSep
) determines the format of the created key.pathSep
: this is used to split the value ofpathKey
.keySep
: this is used to join/split the created/parsed key.
pk.create(obj)
var key = pk.create({
_path: 'companyId/email', // pathKey: '_path', pathSep: '/'
companyId: 'stock-market',
email: '[email protected]',
name: 'Vincent Adultman'
})
// 'companyId/email/nameÿstock-marketÿ[email protected]ÿVincent Adultman'
// ^ keySep: 'ÿ'
pk.parse(key)
var key = 'companyId/email/nameÿstock-marketÿ[email protected]ÿVincent Adultman'
var parsed = pk.parse(key)
// { _path: 'companyId/email/name',
// companyId: 'stock-market',
// email: '[email protected]',
// name: 'Vincent Adultman' }
pk.range(obj)
var range = pk.range({
_path: 'companyId/email/name',
companyId: 'stock-market'
})
console.log(range)
// {
// gte: 'companyId/email/nameÿstock-marketÿ',
// lte: 'companyId/email/nameÿstock-marketÿÿÿ',
// }
License
MIT