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;
|