LocalDatastoreController.react-native.js 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  2. var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
  3. var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
  4. var _LocalDatastoreUtils = require("./LocalDatastoreUtils");
  5. var RNStorage = require('./StorageController.react-native');
  6. var LocalDatastoreController = {
  7. fromPinWithName: function (name) {
  8. return function () {
  9. var values, objects;
  10. return _regenerator.default.async(function (_context) {
  11. while (1) {
  12. switch (_context.prev = _context.next) {
  13. case 0:
  14. _context.next = 2;
  15. return _regenerator.default.awrap(RNStorage.getItemAsync(name));
  16. case 2:
  17. values = _context.sent;
  18. if (values) {
  19. _context.next = 5;
  20. break;
  21. }
  22. return _context.abrupt("return", []);
  23. case 5:
  24. objects = JSON.parse(values);
  25. return _context.abrupt("return", objects);
  26. case 7:
  27. case "end":
  28. return _context.stop();
  29. }
  30. }
  31. }, null, null, null, Promise);
  32. }();
  33. },
  34. pinWithName: function (name, value) {
  35. return function () {
  36. var values;
  37. return _regenerator.default.async(function (_context2) {
  38. while (1) {
  39. switch (_context2.prev = _context2.next) {
  40. case 0:
  41. _context2.prev = 0;
  42. values = JSON.stringify(value);
  43. _context2.next = 4;
  44. return _regenerator.default.awrap(RNStorage.setItemAsync(name, values));
  45. case 4:
  46. _context2.next = 9;
  47. break;
  48. case 6:
  49. _context2.prev = 6;
  50. _context2.t0 = _context2["catch"](0);
  51. console.error(_context2.t0.message);
  52. case 9:
  53. case "end":
  54. return _context2.stop();
  55. }
  56. }
  57. }, null, null, [[0, 6]], Promise);
  58. }();
  59. },
  60. unPinWithName: function (name) {
  61. return RNStorage.removeItemAsync(name);
  62. },
  63. getAllContents: function () {
  64. return function () {
  65. var keys, batch, i, key, LDS, results;
  66. return _regenerator.default.async(function (_context3) {
  67. while (1) {
  68. switch (_context3.prev = _context3.next) {
  69. case 0:
  70. _context3.next = 2;
  71. return _regenerator.default.awrap(RNStorage.getAllKeysAsync());
  72. case 2:
  73. keys = _context3.sent;
  74. batch = [];
  75. for (i = 0; i < keys.length; i += 1) {
  76. key = keys[i];
  77. if ((0, _LocalDatastoreUtils.isLocalDatastoreKey)(key)) {
  78. batch.push(key);
  79. }
  80. }
  81. LDS = {};
  82. results = [];
  83. _context3.prev = 7;
  84. _context3.next = 10;
  85. return _regenerator.default.awrap(RNStorage.multiGet(batch));
  86. case 10:
  87. results = _context3.sent;
  88. _context3.next = 17;
  89. break;
  90. case 13:
  91. _context3.prev = 13;
  92. _context3.t0 = _context3["catch"](7);
  93. console.error('Error getAllContents: ', _context3.t0);
  94. return _context3.abrupt("return", {});
  95. case 17:
  96. results.forEach(function (pair) {
  97. var _pair = (0, _slicedToArray2.default)(pair, 2),
  98. key = _pair[0],
  99. value = _pair[1];
  100. try {
  101. LDS[key] = JSON.parse(value);
  102. } catch (error) {
  103. LDS[key] = null;
  104. }
  105. });
  106. return _context3.abrupt("return", LDS);
  107. case 19:
  108. case "end":
  109. return _context3.stop();
  110. }
  111. }
  112. }, null, null, [[7, 13]], Promise);
  113. }();
  114. },
  115. getRawStorage: function () {
  116. return function () {
  117. var keys, storage, results;
  118. return _regenerator.default.async(function (_context4) {
  119. while (1) {
  120. switch (_context4.prev = _context4.next) {
  121. case 0:
  122. _context4.next = 2;
  123. return _regenerator.default.awrap(RNStorage.getAllKeysAsync());
  124. case 2:
  125. keys = _context4.sent;
  126. storage = {};
  127. _context4.next = 6;
  128. return _regenerator.default.awrap(RNStorage.multiGet(keys));
  129. case 6:
  130. results = _context4.sent;
  131. results.forEach(function (pair) {
  132. var _pair2 = (0, _slicedToArray2.default)(pair, 2),
  133. key = _pair2[0],
  134. value = _pair2[1];
  135. storage[key] = value;
  136. });
  137. return _context4.abrupt("return", storage);
  138. case 9:
  139. case "end":
  140. return _context4.stop();
  141. }
  142. }
  143. }, null, null, null, Promise);
  144. }();
  145. },
  146. clear: function () {
  147. return function () {
  148. var keys, batch, i, key;
  149. return _regenerator.default.async(function (_context5) {
  150. while (1) {
  151. switch (_context5.prev = _context5.next) {
  152. case 0:
  153. _context5.next = 2;
  154. return _regenerator.default.awrap(RNStorage.getAllKeysAsync());
  155. case 2:
  156. keys = _context5.sent;
  157. batch = [];
  158. for (i = 0; i < keys.length; i += 1) {
  159. key = keys[i];
  160. if ((0, _LocalDatastoreUtils.isLocalDatastoreKey)(key)) {
  161. batch.push(key);
  162. }
  163. }
  164. return _context5.abrupt("return", RNStorage.multiRemove(batch).catch(function (error) {
  165. return console.error('Error clearing local datastore: ', error);
  166. }));
  167. case 6:
  168. case "end":
  169. return _context5.stop();
  170. }
  171. }
  172. }, null, null, null, Promise);
  173. }();
  174. }
  175. };
  176. module.exports = LocalDatastoreController;