react-native-onyx 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,13 +1,13 @@
1
1
  (function webpackUniversalModuleDefinition(root, factory) {
2
2
  if(typeof exports === 'object' && typeof module === 'object')
3
- module.exports = factory(require("underscore"), require("expensify-common/lib/str"), require("lodash/merge"), require("localforage"), require("react"));
3
+ module.exports = factory(require("underscore"), require("expensify-common/lib/str"), require("lodash/merge"), require("lodash/get"), require("localforage"), require("react"));
4
4
  else if(typeof define === 'function' && define.amd)
5
- define(["underscore", "expensify-common/lib/str", "lodash/merge", "localforage", "react"], factory);
5
+ define(["underscore", "expensify-common/lib/str", "lodash/merge", "lodash/get", "localforage", "react"], factory);
6
6
  else if(typeof exports === 'object')
7
- exports["react-native-onyx/web"] = factory(require("underscore"), require("expensify-common/lib/str"), require("lodash/merge"), require("localforage"), require("react"));
7
+ exports["react-native-onyx/web"] = factory(require("underscore"), require("expensify-common/lib/str"), require("lodash/merge"), require("lodash/get"), require("localforage"), require("react"));
8
8
  else
9
- root["react-native-onyx/web"] = factory(root["underscore"], root["expensify-common/lib/str"], root["lodash/merge"], root["localforage"], root["react"]);
10
- })(self, (__WEBPACK_EXTERNAL_MODULE_underscore__, __WEBPACK_EXTERNAL_MODULE_expensify_common_lib_str__, __WEBPACK_EXTERNAL_MODULE_lodash_merge__, __WEBPACK_EXTERNAL_MODULE_localforage__, __WEBPACK_EXTERNAL_MODULE_react__) => {
9
+ root["react-native-onyx/web"] = factory(root["underscore"], root["expensify-common/lib/str"], root["lodash/merge"], root["lodash/get"], root["localforage"], root["react"]);
10
+ })(self, (__WEBPACK_EXTERNAL_MODULE_underscore__, __WEBPACK_EXTERNAL_MODULE_expensify_common_lib_str__, __WEBPACK_EXTERNAL_MODULE_lodash_merge__, __WEBPACK_EXTERNAL_MODULE_lodash_get__, __WEBPACK_EXTERNAL_MODULE_localforage__, __WEBPACK_EXTERNAL_MODULE_react__) => {
11
11
  return /******/ (() => { // webpackBootstrap
12
12
  /******/ var __webpack_modules__ = ({
13
13
 
@@ -492,6 +492,7 @@ function logInfo(message) {
492
492
  var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(exports, "__esModule", ({ value: true }));exports["default"] = void 0;var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "./node_modules/@babel/runtime/helpers/slicedToArray.js"));var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "./node_modules/@babel/runtime/helpers/toConsumableArray.js"));var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js"));var _extends4 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "./node_modules/@babel/runtime/helpers/extends.js"));var _underscore = _interopRequireDefault(__webpack_require__(/*! underscore */ "underscore"));
493
493
  var _str = _interopRequireDefault(__webpack_require__(/*! expensify-common/lib/str */ "expensify-common/lib/str"));
494
494
  var _merge = _interopRequireDefault(__webpack_require__(/*! lodash/merge */ "lodash/merge"));
495
+ var _get = _interopRequireDefault(__webpack_require__(/*! lodash/get */ "lodash/get"));
495
496
  var _storage = _interopRequireDefault(__webpack_require__(/*! ./storage */ "./lib/storage/index.web.js"));
496
497
  var Logger = _interopRequireWildcard(__webpack_require__(/*! ./Logger */ "./lib/Logger.js"));
497
498
  var _OnyxCache = _interopRequireDefault(__webpack_require__(/*! ./OnyxCache */ "./lib/OnyxCache.js"));
@@ -1199,18 +1200,36 @@ function initializeWithDefaultKeyStates() {
1199
1200
  /**
1200
1201
  * Clear out all the data in the store
1201
1202
  *
1203
+ * Note that calling Onyx.clear() and then Onyx.set() on a key with a default
1204
+ * key state may store an unexpected value in Storage.
1205
+ *
1206
+ * E.g.
1207
+ * Onyx.clear();
1208
+ * Onyx.set(ONYXKEYS.DEFAULT_KEY, 'default');
1209
+ * Storage.getItem(ONYXKEYS.DEFAULT_KEY)
1210
+ * .then((storedValue) => console.log(storedValue));
1211
+ * null is logged instead of the expected 'default'
1212
+ *
1213
+ * Onyx.set() might call Storage.setItem() before Onyx.clear() calls
1214
+ * Storage.setItem(). Use Onyx.merge() instead if possible. Onyx.merge() calls
1215
+ * Onyx.get(key) before calling Storage.setItem() via Onyx.set().
1216
+ * Storage.setItem() from Onyx.clear() will have already finished and the merged
1217
+ * value will be saved to storage after the default value.
1218
+ *
1202
1219
  * @returns {Promise<void>}
1203
1220
  */
1204
1221
  function clear() {
1205
1222
  return getAllKeys().
1206
1223
  then(function (keys) {
1207
1224
  _underscore.default.each(keys, function (key) {
1208
- keyChanged(key, null);
1209
- _OnyxCache.default.set(key, null);
1225
+ var resetValue = (0, _get.default)(defaultKeyStates, key, null);
1226
+ _OnyxCache.default.set(key, resetValue);
1227
+
1228
+ // Optimistically inform subscribers on the next tick
1229
+ Promise.resolve().then(function () {return keyChanged(key, resetValue);});
1210
1230
  });
1211
- }).
1212
- then(_storage.default.clear).
1213
- then(initializeWithDefaultKeyStates);
1231
+ _storage.default.clear();
1232
+ });
1214
1233
  }
1215
1234
 
1216
1235
  /**
@@ -3235,6 +3254,17 @@ module.exports = __WEBPACK_EXTERNAL_MODULE_localforage__;
3235
3254
 
3236
3255
  /***/ }),
3237
3256
 
3257
+ /***/ "lodash/get":
3258
+ /*!*****************************!*\
3259
+ !*** external "lodash/get" ***!
3260
+ \*****************************/
3261
+ /***/ ((module) => {
3262
+
3263
+ "use strict";
3264
+ module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_get__;
3265
+
3266
+ /***/ }),
3267
+
3238
3268
  /***/ "lodash/merge":
3239
3269
  /*!*******************************!*\
3240
3270
  !*** external "lodash/merge" ***!