├── lib ├── supermarket.js └── store.js ├── test ├── multiple_dbs.js ├── queue.js ├── length.js ├── set_remove.js ├── multiple_get_set.js ├── get_set.js ├── multiple_set.js ├── foreach.js ├── all.js ├── filter.js └── json.js ├── package.json └── readme.txt /lib/supermarket.js: -------------------------------------------------------------------------------- 1 | module.exports = module.exports.Store = require('./store') 2 | -------------------------------------------------------------------------------- /test/multiple_dbs.js: -------------------------------------------------------------------------------- 1 | var Store = require('supermarket'); 2 | 3 | exports['multiple set/get'] = function (assert) { 4 | var db1 = Store('/tmp/moo.db'); 5 | var db2 = Store('/tmp/moo.db'); 6 | 7 | db1.set('x', 5); 8 | db2.get('x', function (err, x) { 9 | assert.equal(x, 5); 10 | }); 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /test/queue.js: -------------------------------------------------------------------------------- 1 | var Store = require('supermarket'); 2 | 3 | exports['get/set'] = function (assert) { 4 | var file = '/tmp/' + Math.floor(Math.random() * 1e8) + '.db'; 5 | 6 | var db = Store(file); 7 | 8 | db.set('moo', 5, function (sErr) { 9 | assert.ok(!sErr); 10 | }); 11 | 12 | db.get('moo', function (gErr, val, key) { 13 | assert.equal(val, 5); 14 | assert.equal(key, 'moo'); 15 | }); 16 | }; 17 | -------------------------------------------------------------------------------- /test/length.js: -------------------------------------------------------------------------------- 1 | var Store = require('supermarket'); 2 | 3 | exports['length'] = function (assert) { 4 | Store(':memory:', function (err, db) { 5 | assert.ok(!err); 6 | 7 | range(0,100).forEach(function (i) { 8 | db.set(i, i, function (err, k, v) { 9 | assert.ok(!err); 10 | if (v == 99) { 11 | db.length(function (err, len) { 12 | assert.ok(!err); 13 | assert.equal(len, 100); 14 | }); 15 | } 16 | }); 17 | }); 18 | }); 19 | }; 20 | 21 | function range(i, j) { 22 | var ret = []; 23 | for (; i=0.1.93" 28 | }, 29 | "dependencies" : { 30 | "pksqlite": ">=0.0.3", 31 | "lazy": ">=1.0.0" 32 | } 33 | } 34 | 35 | -------------------------------------------------------------------------------- /test/get_set.js: -------------------------------------------------------------------------------- 1 | var Store = require('supermarket'); 2 | 3 | exports['get/set'] = function (assert) { 4 | var file = '/tmp/' + Math.floor(Math.random() * 1e8) + '.db'; 5 | 6 | Store(file, function (error, db) { 7 | if (error) throw error; 8 | 9 | db.set('pkrumins', 5, function (sErr) { 10 | assert.ok(!sErr); 11 | db.get('pkrumins', function (gErr, value) { 12 | assert.ok(!gErr); 13 | assert.equal(value, 5); 14 | }); 15 | }); 16 | 17 | db.set('substack', 8, function (sErr) { 18 | assert.ok(!sErr); 19 | db.get('substack', function (gErr, value) { 20 | assert.ok(!gErr); 21 | assert.equal(value, 8); 22 | }); 23 | }); 24 | 25 | db.get('jesusabdullah', function (err, value) { 26 | assert.ok(!err); 27 | assert.equal(value, undefined); 28 | }); 29 | }); 30 | }; 31 | -------------------------------------------------------------------------------- /test/multiple_set.js: -------------------------------------------------------------------------------- 1 | var Store = require('supermarket'); 2 | var file = '/tmp/' + Math.floor(Math.random() * 1e8) + '.db'; 3 | 4 | exports['multiple set'] = function (assert) { 5 | Store(file, function (error, db) { 6 | if (error) throw error; 7 | 8 | range(0,100).forEach(function (x) { 9 | var key = 'key' + (x).toString(); 10 | db.set(key, x, function (sErr) { 11 | assert.ok(!sErr); 12 | if (x == 99) { 13 | range(0,100).forEach(function (y) { 14 | var key = 'key' + (y).toString(); 15 | db.get(key, function (gErr, val) { 16 | assert.ok(!gErr); 17 | assert.equal(y, val); 18 | }); 19 | }); 20 | } 21 | }); 22 | }); 23 | }); 24 | }; 25 | 26 | function range(i, j) { 27 | var ret = []; 28 | for (; i