UNPKG

1.66 kBJavaScriptView Raw
1import Promise from 'bluebird';
2
3import { clone, unapply, pipe, omit, flip, props } from 'ramda';
4
5export const ValueStore = () => {
6 let val = null;
7
8 return {
9 get: () => clone(val),
10 set: newVal => val = newVal
11 };
12};
13
14export const ValueStoreMap = () => {
15 const val = new Map();
16
17 return {
18 get: key => clone(val.get(key)),
19 set: (key, newVal) => val.set(key, newVal)
20 };
21};
22
23export const TimeOffset = ValueStore();
24export const dcList = ValueStoreMap();
25
26const flatProps = pipe(flip(props), unapply);
27
28export const AsyncStorage = () => {
29 let store = {};
30
31 const flatGet = flatProps(store);
32 const set = obj => store = Object.assign({}, store, obj);
33 const remove = keys => store = omit(keys, store);
34 const clr = () => store = {};
35 return {
36 get: (...keys) => Promise.resolve(flatGet(...keys)),
37 set: obj => Promise.resolve(set(obj)),
38 remove: (...keys) => Promise.resolve(remove(keys)),
39 clear: () => Promise.resolve(clr()),
40 noPrefix: () => ({})
41 };
42};
43
44export const PureStorage = AsyncStorage(); /*{
45 get : (...keys) => new Promise(rs => ConfigStorage.get(keys, rs)),
46 set : obj => new Promise(rs => ConfigStorage.set(obj, rs)),
47 remove : (...keys) => new Promise(rs => ConfigStorage.remove(...keys, rs)),
48 noPrefix: () => ConfigStorage.noPrefix(),
49 clear : () => new Promise(rs => ConfigStorage.clear(rs))
50 }*/
51//# sourceMappingURL=store.js.map
\No newline at end of file