提交 f90e2823 编写于 作者: a865501259's avatar a865501259

Add: util - diskdb , and test

上级 0e6eb686
......@@ -36,6 +36,7 @@
"dependencies": {
"async": "^2.6.0",
"debug": "^3.1.0",
"diskdb": "^0.1.17",
"files-list": "^1.4.1",
"meow": "^3.7.0",
"minimatch": "^3.0.4",
......
var dbS = require('diskdb');
const path = require('path');
const localPath = () => path.join(__dirname, 'disks');
function loadDisk(...filename) {
let db = dbS.connect(
localPath(),
[...filename]
);
let options = {
multi: false, // update multiple - default false
upsert: true // if object is not found, add it (update-insert) - default false
};
function setDisk(key, q, obj) {
return db[key].update(q, obj, options);
}
function getDisk(key, obj) {
return db[key].findOne(obj);
}
return {setDisk, getDisk, db, path: db._db.path};
}
module.exports = loadDisk;
[{"author":"name","_id":"9a8390e75a4b458dbf7e522c28357e81"}]
\ No newline at end of file
const {test} = require('ava');
const dbFunc = require('../../src/util/diskCache');
const DBname = 'test-disk';
let dbFace = dbFunc(DBname);
const OBJ = {author: 'name'};
test.serial('set obj', async t => {
let res = await dbFace.setDisk(DBname, OBJ, OBJ);
console.log(res);
t.true(Object.keys(res).some(x => res[x] > 0));
});
test.serial('get obj', async t => {
let res = await dbFace.getDisk(DBname);
t.deepEqual(res.author, OBJ.author);
});
test.serial('db path', t => {
t.true(dbFace.path.includes('disks'));
});
......@@ -1500,6 +1500,15 @@ detect-libc@^1.0.2:
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
diskdb@^0.1.17:
version "0.1.17"
resolved "https://registry.yarnpkg.com/diskdb/-/diskdb-0.1.17.tgz#8abd095196b33b406791f1494b6b13b4422240c4"
integrity sha1-ir0JUZazO0BnkfFJS2sTtEIiQMQ=
dependencies:
chalk "^0.4.0"
merge "^1.1.3"
node-uuid "^1.4.1"
dom-serializer@0, dom-serializer@~0.1.0:
version "0.1.0"
resolved "http://registry.npm.taobao.org/dom-serializer/download/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82"
......@@ -3154,6 +3163,11 @@ merge-source-map@^1.1.0:
dependencies:
source-map "^0.6.1"
merge@^1.1.3:
version "1.2.1"
resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145"
integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==
micromatch@^2.1.5:
version "2.3.11"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
......@@ -3343,6 +3357,11 @@ node-pre-gyp@^0.10.0:
semver "^5.3.0"
tar "^4"
node-uuid@^1.4.1:
version "1.4.8"
resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907"
integrity sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=
nopt@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册