react-native-onyx 1.0.16 → 1.0.17
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.
- package/README.md +2 -2
- package/dist/web.development.js +24 -22
- package/dist/web.development.js.map +1 -1
- package/dist/web.min.js +1 -1
- package/dist/web.min.js.map +1 -1
- package/lib/Onyx.js +3 -4
- package/lib/OnyxCache.js +2 -3
- package/lib/{customizerForMergeWith.js → mergeWithCustomized.js} +8 -3
- package/lib/storage/providers/LocalForage.js +2 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -63,7 +63,7 @@ The data will then be cached and stored via [`AsyncStorage`](https://github.com/
|
|
|
63
63
|
|
|
64
64
|
We can also use `Onyx.merge()` to merge new `Object` or `Array` data in with existing data.
|
|
65
65
|
|
|
66
|
-
For `Array` the default behavior is to
|
|
66
|
+
For `Array` the default behavior is to replace it fully, effectively making it equivalent to set:
|
|
67
67
|
|
|
68
68
|
```javascript
|
|
69
69
|
Onyx.merge(ONYXKEYS.EMPLOYEE_LIST, ['Joe']); // -> ['Joe']
|
|
@@ -77,7 +77,7 @@ Onyx.merge(ONYXKEYS.POLICY, {id: 1}); // -> {id: 1}
|
|
|
77
77
|
Onyx.merge(ONYXKEYS.POLICY, {name: 'My Workspace'}); // -> {id: 1, name: 'My Workspace'}
|
|
78
78
|
```
|
|
79
79
|
|
|
80
|
-
Arrays inside objects will
|
|
80
|
+
Arrays inside objects will be replaced fully, same as arrays not inside objects:
|
|
81
81
|
|
|
82
82
|
```javascript
|
|
83
83
|
Onyx.merge(ONYXKEYS.POLICY, {employeeList: ['Joe', 'Jack']}); // -> {employeeList: ['Joe', 'Jack']}
|
package/dist/web.development.js
CHANGED
|
@@ -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("lodash/
|
|
3
|
+
module.exports = factory(require("underscore"), require("expensify-common/lib/str"), require("lodash/merge"), require("lodash/get"), require("localforage"), require("lodash/mergeWith"), require("react"));
|
|
4
4
|
else if(typeof define === 'function' && define.amd)
|
|
5
|
-
define(["underscore", "expensify-common/lib/str", "lodash/merge", "lodash/
|
|
5
|
+
define(["underscore", "expensify-common/lib/str", "lodash/merge", "lodash/get", "localforage", "lodash/mergeWith", "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("lodash/
|
|
7
|
+
exports["react-native-onyx/web"] = factory(require("underscore"), require("expensify-common/lib/str"), require("lodash/merge"), require("lodash/get"), require("localforage"), require("lodash/mergeWith"), require("react"));
|
|
8
8
|
else
|
|
9
|
-
root["react-native-onyx/web"] = factory(root["underscore"], root["expensify-common/lib/str"], root["lodash/merge"], root["lodash/
|
|
10
|
-
})(self, (__WEBPACK_EXTERNAL_MODULE_underscore__, __WEBPACK_EXTERNAL_MODULE_expensify_common_lib_str__, __WEBPACK_EXTERNAL_MODULE_lodash_merge__,
|
|
9
|
+
root["react-native-onyx/web"] = factory(root["underscore"], root["expensify-common/lib/str"], root["lodash/merge"], root["lodash/get"], root["localforage"], root["lodash/mergeWith"], 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_lodash_mergeWith__, __WEBPACK_EXTERNAL_MODULE_react__) => {
|
|
11
11
|
return /******/ (() => { // webpackBootstrap
|
|
12
12
|
/******/ var __webpack_modules__ = ({
|
|
13
13
|
|
|
@@ -492,13 +492,12 @@ 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 _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "./node_modules/@babel/runtime/helpers/extends.js"));var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.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 _mergeWith = _interopRequireDefault(__webpack_require__(/*! lodash/mergeWith */ "lodash/mergeWith"));
|
|
496
495
|
var _get = _interopRequireDefault(__webpack_require__(/*! lodash/get */ "lodash/get"));
|
|
497
496
|
var _storage = _interopRequireDefault(__webpack_require__(/*! ./storage */ "./lib/storage/index.web.js"));
|
|
498
497
|
var Logger = _interopRequireWildcard(__webpack_require__(/*! ./Logger */ "./lib/Logger.js"));
|
|
499
498
|
var _OnyxCache = _interopRequireDefault(__webpack_require__(/*! ./OnyxCache */ "./lib/OnyxCache.js"));
|
|
500
499
|
var _createDeferredTask = _interopRequireDefault(__webpack_require__(/*! ./createDeferredTask */ "./lib/createDeferredTask.js"));
|
|
501
|
-
var
|
|
500
|
+
var _mergeWithCustomized = _interopRequireDefault(__webpack_require__(/*! ./mergeWithCustomized */ "./lib/mergeWithCustomized.js"));function _getRequireWildcardCache(nodeInterop) {if (typeof WeakMap !== "function") return null;var cacheBabelInterop = new WeakMap();var cacheNodeInterop = new WeakMap();return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {return nodeInterop ? cacheNodeInterop : cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj, nodeInterop) {if (!nodeInterop && obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache(nodeInterop);if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;}
|
|
502
501
|
|
|
503
502
|
// Keeps track of the last connectionID that was used so we can keep incrementing it
|
|
504
503
|
var lastConnectionID = 0;
|
|
@@ -1154,7 +1153,7 @@ function applyMerge(key, data) {
|
|
|
1154
1153
|
if (_underscore.default.isObject(data) || _underscore.default.every(mergeValues, _underscore.default.isObject)) {
|
|
1155
1154
|
// Object values are merged one after the other
|
|
1156
1155
|
return _underscore.default.reduce(mergeValues, function (modifiedData, mergeValue) {
|
|
1157
|
-
var newData = (0,
|
|
1156
|
+
var newData = (0, _mergeWithCustomized.default)({}, modifiedData, mergeValue);
|
|
1158
1157
|
|
|
1159
1158
|
// We will also delete any object keys that are undefined or null.
|
|
1160
1159
|
// Deleting keys is not supported by AsyncStorage so we do it this way.
|
|
@@ -1225,7 +1224,7 @@ function initializeWithDefaultKeyStates() {
|
|
|
1225
1224
|
then(function (pairs) {
|
|
1226
1225
|
var asObject = _underscore.default.object(pairs);
|
|
1227
1226
|
|
|
1228
|
-
var merged = (0,
|
|
1227
|
+
var merged = (0, _mergeWithCustomized.default)(asObject, defaultKeyStates);
|
|
1229
1228
|
_OnyxCache.default.merge(merged);
|
|
1230
1229
|
_underscore.default.each(merged, function (val, key) {return keyChanged(key, val);});
|
|
1231
1230
|
});
|
|
@@ -1495,8 +1494,7 @@ Onyx;exports["default"] = _default;
|
|
|
1495
1494
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
1496
1495
|
|
|
1497
1496
|
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 _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "./node_modules/@babel/runtime/helpers/toConsumableArray.js"));var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"));var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"));var _underscore = _interopRequireDefault(__webpack_require__(/*! underscore */ "underscore"));
|
|
1498
|
-
var
|
|
1499
|
-
var _customizerForMergeWith = _interopRequireDefault(__webpack_require__(/*! ./customizerForMergeWith */ "./lib/customizerForMergeWith.js"));
|
|
1497
|
+
var _mergeWithCustomized = _interopRequireDefault(__webpack_require__(/*! ./mergeWithCustomized */ "./lib/mergeWithCustomized.js"));
|
|
1500
1498
|
|
|
1501
1499
|
var isDefined = _underscore.default.negate(_underscore.default.isUndefined);
|
|
1502
1500
|
|
|
@@ -1607,7 +1605,7 @@ OnyxCache = /*#__PURE__*/function () {
|
|
|
1607
1605
|
* @param {Record<string, *>} data - a map of (cache) key - values
|
|
1608
1606
|
*/ }, { key: "merge", value: function merge(
|
|
1609
1607
|
data) {var _this = this;
|
|
1610
|
-
this.storageMap = (0,
|
|
1608
|
+
this.storageMap = (0, _mergeWithCustomized.default)({}, this.storageMap, data);
|
|
1611
1609
|
|
|
1612
1610
|
var storageKeys = this.getAllKeys();
|
|
1613
1611
|
var mergedKeys = _underscore.default.keys(data);
|
|
@@ -1778,13 +1776,13 @@ function createDeferredTask() {
|
|
|
1778
1776
|
|
|
1779
1777
|
/***/ }),
|
|
1780
1778
|
|
|
1781
|
-
/***/ "./lib/
|
|
1782
|
-
|
|
1783
|
-
!*** ./lib/
|
|
1784
|
-
|
|
1779
|
+
/***/ "./lib/mergeWithCustomized.js":
|
|
1780
|
+
/*!************************************!*\
|
|
1781
|
+
!*** ./lib/mergeWithCustomized.js ***!
|
|
1782
|
+
\************************************/
|
|
1785
1783
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
1786
1784
|
|
|
1787
|
-
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
|
|
1785
|
+
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 _mergeWith = _interopRequireDefault(__webpack_require__(/*! lodash/mergeWith */ "lodash/mergeWith"));
|
|
1788
1786
|
|
|
1789
1787
|
/**
|
|
1790
1788
|
* When merging 2 objects into onyx that contain an array, we want to completely replace the array instead of the default
|
|
@@ -1799,12 +1797,17 @@ var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/inte
|
|
|
1799
1797
|
*/
|
|
1800
1798
|
// eslint-disable-next-line rulesdir/prefer-early-return
|
|
1801
1799
|
function customizerForMergeWith(objValue, srcValue) {
|
|
1802
|
-
|
|
1800
|
+
// eslint-disable-next-line rulesdir/prefer-underscore-method
|
|
1801
|
+
if (Array.isArray(objValue)) {
|
|
1803
1802
|
return srcValue;
|
|
1804
1803
|
}
|
|
1804
|
+
}
|
|
1805
|
+
|
|
1806
|
+
function mergeWithCustomized() {for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}
|
|
1807
|
+
return _mergeWith.default.apply(void 0, args.concat([customizerForMergeWith]));
|
|
1805
1808
|
}var _default =
|
|
1806
1809
|
|
|
1807
|
-
|
|
1810
|
+
mergeWithCustomized;exports["default"] = _default;
|
|
1808
1811
|
|
|
1809
1812
|
/***/ }),
|
|
1810
1813
|
|
|
@@ -1914,9 +1917,8 @@ var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/inte
|
|
|
1914
1917
|
|
|
1915
1918
|
var _localforage = _interopRequireDefault(__webpack_require__(/*! localforage */ "localforage"));
|
|
1916
1919
|
var _underscore = _interopRequireDefault(__webpack_require__(/*! underscore */ "underscore"));
|
|
1917
|
-
var _mergeWith = _interopRequireDefault(__webpack_require__(/*! lodash/mergeWith */ "lodash/mergeWith"));
|
|
1918
1920
|
var _SyncQueue = _interopRequireDefault(__webpack_require__(/*! ../../SyncQueue */ "./lib/SyncQueue.js"));
|
|
1919
|
-
var
|
|
1921
|
+
var _mergeWithCustomized = _interopRequireDefault(__webpack_require__(/*! ../../mergeWithCustomized */ "./lib/mergeWithCustomized.js")); /**
|
|
1920
1922
|
* @file
|
|
1921
1923
|
* The storage provider based on localforage allows us to store most anything in its
|
|
1922
1924
|
* natural form in the underlying DB without having to stringify or de-stringify it
|
|
@@ -1933,7 +1935,7 @@ var provider = {
|
|
|
1933
1935
|
return _localforage.default.getItem(key).
|
|
1934
1936
|
then(function (existingValue) {
|
|
1935
1937
|
var newValue = _underscore.default.isObject(existingValue) ?
|
|
1936
|
-
(0,
|
|
1938
|
+
(0, _mergeWithCustomized.default)({}, existingValue, value) :
|
|
1937
1939
|
value;
|
|
1938
1940
|
return _localforage.default.setItem(key, newValue);
|
|
1939
1941
|
});
|