You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
597 B
25 lines
597 B
4 years ago
|
'use strict';
|
||
|
|
||
|
var flow = require('lodash/flow');
|
||
|
var get = require('lodash/get');
|
||
|
var set = require('lodash/set');
|
||
|
var common = require('./common');
|
||
|
|
||
|
module.exports = function (adapter) {
|
||
|
function db(path, defaultValue) {
|
||
|
function getValue(funcs) {
|
||
|
var result = get(db.getState(), path, defaultValue);
|
||
|
return flow(funcs)(result);
|
||
|
}
|
||
|
|
||
|
getValue.write = function () {
|
||
|
var result = getValue.apply(undefined, arguments);
|
||
|
set(db.getState(), path, result);
|
||
|
return db.write();
|
||
|
};
|
||
|
|
||
|
return getValue;
|
||
|
}
|
||
|
|
||
|
return common.init(db, '__state__', adapter);
|
||
|
};
|