LocalDatastoreController.default.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. "use strict";
  2. var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
  3. var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
  4. _Object$defineProperty(exports, "__esModule", {
  5. value: true
  6. });
  7. exports.default = void 0;
  8. var _stringify = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/json/stringify"));
  9. var _reduce = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/reduce"));
  10. var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
  11. var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
  12. var _LocalDatastoreUtils = require("./LocalDatastoreUtils");
  13. var _Storage = _interopRequireDefault(require("./Storage"));
  14. const LocalDatastoreController = {
  15. async fromPinWithName(name) {
  16. const values = await _Storage.default.getItemAsync(name);
  17. if (!values) {
  18. return [];
  19. }
  20. const objects = JSON.parse(values);
  21. return objects;
  22. },
  23. pinWithName(name, value) {
  24. const values = (0, _stringify.default)(value);
  25. return _Storage.default.setItemAsync(name, values);
  26. },
  27. unPinWithName(name) {
  28. return _Storage.default.removeItemAsync(name);
  29. },
  30. async getAllContents() {
  31. const keys = await _Storage.default.getAllKeysAsync();
  32. return (0, _reduce.default)(keys).call(keys, async (previousPromise, key) => {
  33. const LDS = await previousPromise;
  34. if ((0, _LocalDatastoreUtils.isLocalDatastoreKey)(key)) {
  35. const value = await _Storage.default.getItemAsync(key);
  36. try {
  37. LDS[key] = JSON.parse(value);
  38. } catch (error) {
  39. console.error('Error getAllContents: ', error);
  40. }
  41. }
  42. return LDS;
  43. }, _promise.default.resolve({}));
  44. },
  45. // Used for testing
  46. async getRawStorage() {
  47. const keys = await _Storage.default.getAllKeysAsync();
  48. return (0, _reduce.default)(keys).call(keys, async (previousPromise, key) => {
  49. const LDS = await previousPromise;
  50. const value = await _Storage.default.getItemAsync(key);
  51. LDS[key] = value;
  52. return LDS;
  53. }, _promise.default.resolve({}));
  54. },
  55. async clear() {
  56. const keys = await _Storage.default.getAllKeysAsync();
  57. const toRemove = [];
  58. for (const key of keys) {
  59. if ((0, _LocalDatastoreUtils.isLocalDatastoreKey)(key)) {
  60. toRemove.push(key);
  61. }
  62. }
  63. const promises = (0, _map.default)(toRemove).call(toRemove, this.unPinWithName);
  64. return _promise.default.all(promises);
  65. }
  66. };
  67. module.exports = LocalDatastoreController;
  68. var _default = exports.default = LocalDatastoreController;