UNPKG

1.51 kBJavaScriptView Raw
1#!/usr/bin/env node
2
3/*
4 example demonstrating the .ignore option
5*/
6
7var sublevel = require('subleveldown');
8var memdb = require('memdb');
9
10var rawdb = memdb();
11var db = sublevel(rawdb, 'd', {valueEncoding: 'json'});
12var idb = sublevel(rawdb, 'i');
13var treeIndexer = require('../index.js');
14
15var tree = treeIndexer(db, idb, {
16 sep: '.',
17 ignore: function(key, value) {
18 if(typeof value === 'object') {
19 if(typeof value.name === 'string') {
20 if(value.name[0] === '_') {
21 return true;
22 }
23 }
24 }
25 return false;
26 }
27});
28
29function fail(err) {
30 console.error(err);
31 process.exit(1);
32}
33
34tree.put('1', {name: "foo"}, function(err) {
35 if(err) fail(err);
36
37 tree.put('2', {parentKey: '1', name: "bar"}, function(err) {
38 if(err) fail(err);
39
40 tree.put('3', {parentKey: '2', name: "baz"}, function(err) {
41 if(err) fail(err);
42
43 tree.put('4', {parentKey: '2', name: "_baz"}, function(err) {
44 if(err) fail(err);
45
46 tree.getFromPath('foo.bar.baz', function(err, key, value) {
47 if(err) fail(err);
48
49 console.log("key:", key, "value:", value);
50
51 tree.getFromPath('foo.bar._baz', function(err, key, value) {
52 if(err) {
53 console.log("as expected failed to get hidden element _baz");
54 } else {
55 console.log("Hmmm, something is wrong. We should have gotten an error but didn't.");
56 }
57 });
58 });
59 });
60 });
61 })
62});