| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 | "use strict";var _LocalDatastoreUtils = require("./LocalDatastoreUtils");var _Storage = _interopRequireDefault(require("./Storage"));function _interopRequireDefault(obj) {  return obj && obj.__esModule ? obj : {    default: obj  };}/** * @flow */const LocalDatastoreController = {  async fromPinWithName(name /*: string*/) /*: Array<Object>*/{    const values = await _Storage.default.getItemAsync(name);    if (!values) {      return [];    }    const objects = JSON.parse(values);    return objects;  },  pinWithName(name /*: string*/, value /*: any*/) {    const values = JSON.stringify(value);    return _Storage.default.setItemAsync(name, values);  },  unPinWithName(name /*: string*/) {    return _Storage.default.removeItemAsync(name);  },  async getAllContents() /*: Object*/{    const keys = await _Storage.default.getAllKeysAsync();    return keys.reduce(async (previousPromise, key) => {      const LDS = await previousPromise;      if ((0, _LocalDatastoreUtils.isLocalDatastoreKey)(key)) {        const value = await _Storage.default.getItemAsync(key);        try {          LDS[key] = JSON.parse(value);        } catch (error) {          console.error('Error getAllContents: ', error);        }      }      return LDS;    }, Promise.resolve({}));  },  // Used for testing  async getRawStorage() /*: Object*/{    const keys = await _Storage.default.getAllKeysAsync();    return keys.reduce(async (previousPromise, key) => {      const LDS = await previousPromise;      const value = await _Storage.default.getItemAsync(key);      LDS[key] = value;      return LDS;    }, Promise.resolve({}));  },  async clear() /*: Promise*/{    const keys = await _Storage.default.getAllKeysAsync();    const toRemove = [];    for (const key of keys) {      if ((0, _LocalDatastoreUtils.isLocalDatastoreKey)(key)) {        toRemove.push(key);      }    }    const promises = toRemove.map(this.unPinWithName);    return Promise.all(promises);  }};module.exports = LocalDatastoreController;
 |