UNPKG

sync-storage

Version:

Synchronous storage for React Native.

51 lines (47 loc) 1.29 kB
let cache = {}; const multi = (arrKeys) => { const keys = Object.keys(cache); const arr = []; for (var i = 0; i < keys.length; i++) { if (arrKeys.indexOf(keys[i]) !== -1) { arr.push(cache[keys[i]]); } } return arr; } export default { multiGet: (keys) => { return new Promise((resolve, reject) => { return (typeof keys !== 'object') ? reject(new Error('keys must be array')) : resolve(multi(keys)); }); }, setItem: (key, value) => { return new Promise((resolve, reject) => { return (typeof key !== 'string' || typeof value !== 'string') ? reject(new Error('key and value must be string')) : resolve(cache[key] = value); }); }, getItem: (key, value) => { return new Promise((resolve) => { return cache.hasOwnProperty(key) ? resolve(cache[key]) : resolve(null); }); }, removeItem: (key) => { return new Promise((resolve, reject) => { return cache.hasOwnProperty(key) ? resolve(delete cache[key]) : reject('No such key!'); }); }, clear: (key) => { return new Promise((resolve, reject) => resolve(cache = {})); }, getAllKeys: (key) => { return new Promise((resolve, reject) => resolve(Object.keys(cache))); }, }