react-native-onyx 1.0.26 → 1.0.28
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/dist/web.development.js +26 -12
- 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 +25 -11
- package/package.json +1 -1
package/dist/web.development.js
CHANGED
|
@@ -501,6 +501,14 @@ var _createDeferredTask = _interopRequireDefault(__webpack_require__(/*! ./creat
|
|
|
501
501
|
var _fastMerge = _interopRequireDefault(__webpack_require__(/*! ./fastMerge */ "./lib/fastMerge.js"));
|
|
502
502
|
var PerformanceUtils = _interopRequireWildcard(__webpack_require__(/*! ./metrics/PerformanceUtils */ "./lib/metrics/PerformanceUtils.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;} /* eslint-disable no-continue */
|
|
503
503
|
|
|
504
|
+
// Method constants
|
|
505
|
+
var METHOD = {
|
|
506
|
+
SET: 'set',
|
|
507
|
+
MERGE: 'merge',
|
|
508
|
+
MERGE_COLLECTION: 'mergecollection',
|
|
509
|
+
CLEAR: 'clear' };
|
|
510
|
+
|
|
511
|
+
|
|
504
512
|
// Keeps track of the last connectionID that was used so we can keep incrementing it
|
|
505
513
|
var lastConnectionID = 0;
|
|
506
514
|
|
|
@@ -1006,7 +1014,7 @@ function keyChanged(key, data, canUpdateSubscriber) {
|
|
|
1006
1014
|
// returned by the selector and only if the selected data has changed.
|
|
1007
1015
|
if (subscriber.selector) {
|
|
1008
1016
|
subscriber.withOnyxInstance.setState(function (prevState) {
|
|
1009
|
-
var previousValue = getSubsetOfData(prevState, subscriber.selector);
|
|
1017
|
+
var previousValue = getSubsetOfData(prevState[subscriber.statePropertyName], subscriber.selector);
|
|
1010
1018
|
var newValue = getSubsetOfData(data, subscriber.selector);
|
|
1011
1019
|
if (!(0, _fastEquals.deepEqual)(previousValue, newValue)) {
|
|
1012
1020
|
return (0, _defineProperty2.default)({},
|
|
@@ -1592,36 +1600,41 @@ function mergeCollection(collectionKey, collection) {
|
|
|
1592
1600
|
* Insert API responses and lifecycle data into Onyx
|
|
1593
1601
|
*
|
|
1594
1602
|
* @param {Array} data An array of objects with shape {onyxMethod: oneOf('set', 'merge', 'mergeCollection'), key: string, value: *}
|
|
1603
|
+
* @returns {Promise} resolves when all operations are complete
|
|
1595
1604
|
*/
|
|
1596
1605
|
function update(data) {
|
|
1597
1606
|
// First, validate the Onyx object is in the format we expect
|
|
1598
1607
|
_underscore.default.each(data, function (_ref9) {var onyxMethod = _ref9.onyxMethod,key = _ref9.key;
|
|
1599
|
-
if (!_underscore.default.contains([
|
|
1608
|
+
if (!_underscore.default.contains([METHOD.CLEAR, METHOD.SET, METHOD.MERGE, METHOD.MERGE_COLLECTION], onyxMethod)) {
|
|
1600
1609
|
throw new Error("Invalid onyxMethod " + onyxMethod + " in Onyx update.");
|
|
1601
1610
|
}
|
|
1602
|
-
if (onyxMethod !==
|
|
1611
|
+
if (onyxMethod !== METHOD.CLEAR && !_underscore.default.isString(key)) {
|
|
1603
1612
|
throw new Error("Invalid " + typeof key + " key provided in Onyx update. Onyx key must be of type string.");
|
|
1604
1613
|
}
|
|
1605
1614
|
});
|
|
1606
1615
|
|
|
1616
|
+
var promises = [];
|
|
1617
|
+
|
|
1607
1618
|
_underscore.default.each(data, function (_ref10) {var onyxMethod = _ref10.onyxMethod,key = _ref10.key,value = _ref10.value;
|
|
1608
1619
|
switch (onyxMethod) {
|
|
1609
|
-
case
|
|
1610
|
-
set(key, value);
|
|
1620
|
+
case METHOD.SET:
|
|
1621
|
+
promises.push(set(key, value));
|
|
1611
1622
|
break;
|
|
1612
|
-
case
|
|
1613
|
-
merge(key, value);
|
|
1623
|
+
case METHOD.MERGE:
|
|
1624
|
+
promises.push(merge(key, value));
|
|
1614
1625
|
break;
|
|
1615
|
-
case
|
|
1616
|
-
mergeCollection(key, value);
|
|
1626
|
+
case METHOD.MERGE_COLLECTION:
|
|
1627
|
+
promises.push(mergeCollection(key, value));
|
|
1617
1628
|
break;
|
|
1618
|
-
case
|
|
1619
|
-
clear();
|
|
1629
|
+
case METHOD.CLEAR:
|
|
1630
|
+
promises.push(clear());
|
|
1620
1631
|
break;
|
|
1621
1632
|
default:
|
|
1622
1633
|
break;}
|
|
1623
1634
|
|
|
1624
1635
|
});
|
|
1636
|
+
|
|
1637
|
+
return Promise.all(promises);
|
|
1625
1638
|
}
|
|
1626
1639
|
|
|
1627
1640
|
/**
|
|
@@ -1709,7 +1722,8 @@ var Onyx = {
|
|
|
1709
1722
|
registerLogger: Logger.registerLogger,
|
|
1710
1723
|
addToEvictionBlockList: addToEvictionBlockList,
|
|
1711
1724
|
removeFromEvictionBlockList: removeFromEvictionBlockList,
|
|
1712
|
-
isSafeEvictionKey: isSafeEvictionKey
|
|
1725
|
+
isSafeEvictionKey: isSafeEvictionKey,
|
|
1726
|
+
METHOD: METHOD };
|
|
1713
1727
|
|
|
1714
1728
|
|
|
1715
1729
|
/**
|