UNPKG

737 BJavaScriptView Raw
1'use strict';
2
3var isPromise = require('is-promise');
4
5var init = function init(db, key, adapter) {
6 db.read = function () {
7 var r = adapter.read();
8
9 return isPromise(r) ? r.then(db.plant) : db.plant(r);
10 };
11
12 db.write = function () {
13 var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : db.getState();
14
15 var w = adapter.write(db.getState());
16
17 return isPromise(w) ? w.then(function () {
18 return value;
19 }) : value;
20 };
21
22 db.plant = function (state) {
23 db[key] = state;
24 return db;
25 };
26
27 db.getState = function () {
28 return db[key];
29 };
30
31 db.setState = function (state) {
32 db.plant(state);
33 return db;
34 };
35
36 return db.read();
37};
38
39module.exports = {
40 init
41};
\No newline at end of file