| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 | "use strict";var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");var _stringify = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/json/stringify"));var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/for-each"));var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs3/regenerator"));var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/asyncToGenerator"));var _LocalDatastoreUtils = require("./LocalDatastoreUtils");/** * @flow * @private */var RNStorage = require('./StorageController.react-native');var LocalDatastoreController = {  fromPinWithName: function (name /*: string*/) /*: Promise<Array<Object>>*/{    return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {      var values, objects;      return _regenerator.default.wrap(function (_context) {        while (1) switch (_context.prev = _context.next) {          case 0:            _context.next = 2;            return RNStorage.getItemAsync(name);          case 2:            values = _context.sent;            if (values) {              _context.next = 5;              break;            }            return _context.abrupt("return", []);          case 5:            objects = JSON.parse(values);            return _context.abrupt("return", objects);          case 7:          case "end":            return _context.stop();        }      }, _callee);    }))();  },  pinWithName: function (name /*: string*/, value /*: any*/) /*: Promise<void>*/{    return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {      var values;      return _regenerator.default.wrap(function (_context2) {        while (1) switch (_context2.prev = _context2.next) {          case 0:            _context2.prev = 0;            values = (0, _stringify.default)(value);            _context2.next = 4;            return RNStorage.setItemAsync(name, values);          case 4:            _context2.next = 9;            break;          case 6:            _context2.prev = 6;            _context2.t0 = _context2["catch"](0);            // Quota exceeded, possibly due to Safari Private Browsing mode            console.error(_context2.t0.message);          case 9:          case "end":            return _context2.stop();        }      }, _callee2, null, [[0, 6]]);    }))();  },  unPinWithName: function (name /*: string*/) /*: Promise<void>*/{    return RNStorage.removeItemAsync(name);  },  getAllContents: function () /*: Promise<Object>*/{    return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {      var keys, batch, i, key, LDS, results;      return _regenerator.default.wrap(function (_context3) {        while (1) switch (_context3.prev = _context3.next) {          case 0:            _context3.next = 2;            return RNStorage.getAllKeysAsync();          case 2:            keys = _context3.sent;            batch = [];            for (i = 0; i < keys.length; i += 1) {              key = keys[i];              if ((0, _LocalDatastoreUtils.isLocalDatastoreKey)(key)) {                batch.push(key);              }            }            LDS = {};            results = [];            _context3.prev = 7;            _context3.next = 10;            return RNStorage.multiGet(batch);          case 10:            results = _context3.sent;            _context3.next = 17;            break;          case 13:            _context3.prev = 13;            _context3.t0 = _context3["catch"](7);            console.error('Error getAllContents: ', _context3.t0);            return _context3.abrupt("return", {});          case 17:            (0, _forEach.default)(results).call(results, function (pair) {              var _pair = (0, _slicedToArray2.default)(pair, 2),                key = _pair[0],                value = _pair[1];              try {                LDS[key] = JSON.parse(value);              } catch (error) {                LDS[key] = null;              }            });            return _context3.abrupt("return", LDS);          case 19:          case "end":            return _context3.stop();        }      }, _callee3, null, [[7, 13]]);    }))();  },  // Used for testing  getRawStorage: function () /*: Promise<Object>*/{    return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {      var keys, storage, results;      return _regenerator.default.wrap(function (_context4) {        while (1) switch (_context4.prev = _context4.next) {          case 0:            _context4.next = 2;            return RNStorage.getAllKeysAsync();          case 2:            keys = _context4.sent;            storage = {};            _context4.next = 6;            return RNStorage.multiGet(keys);          case 6:            results = _context4.sent;            (0, _map.default)(results).call(results, function (pair) {              var _pair2 = (0, _slicedToArray2.default)(pair, 2),                key = _pair2[0],                value = _pair2[1];              storage[key] = value;            });            return _context4.abrupt("return", storage);          case 9:          case "end":            return _context4.stop();        }      }, _callee4);    }))();  },  clear: function () /*: Promise<void>*/{    return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {      var keys, batch, i, key;      return _regenerator.default.wrap(function (_context5) {        while (1) switch (_context5.prev = _context5.next) {          case 0:            _context5.next = 2;            return RNStorage.getAllKeysAsync();          case 2:            keys = _context5.sent;            batch = [];            for (i = 0; i < keys.length; i += 1) {              key = keys[i];              if ((0, _LocalDatastoreUtils.isLocalDatastoreKey)(key)) {                batch.push(key);              }            }            return _context5.abrupt("return", RNStorage.multiRemove(batch).catch(function (error) {              return console.error('Error clearing local datastore: ', error);            }));          case 6:          case "end":            return _context5.stop();        }      }, _callee5);    }))();  }};module.exports = LocalDatastoreController;
 |