Childish is an opinionated
LevelUP abstraction that stores
and operate on keys in the form of parent/child.
Besides giving you a way to store and delete these keys, you can query
for the existence of a key using .ok(key) get a list of all children
of a given parent using .children(parent) or a list of all parents
using .parents(child).
Notice that there are no values associated with the keys. This is just a database for storing parent-child relationships using a hierarchical key structure.
You can use any LevelDOWN compatible datastore you like as your backend. Here are a few popular once:
npm install childish
var levelup = require('level');
var db = require('childish')(levelup('/tmp/my-db'));
db.put('admin/odin', function (err) {
db.put('moderator/odin', function (err) {
db.put('moderator/thor', function (err) {
db.ok('admin/odin', function (err, ok) {
if (ok) console.log('Odin is an admin');
});
console.log('The follwoing users are admins:');
db.children('admin').pipe(console.log);
console.log('Odin have the following permissions:');
db.parents('odin').pipe(console.log);
});
});
});
db.put(key, callback) - Register a key (key format: parent/child)db.ok(key, callback) - Check if a key exists (key format: parent/child)db.del(key, callback) - Remove a key (key format: parent/child)db.children(parent) - Get a stream of all children for parentdb.parents(child) - Get a stream of all parents for childMIT