react-native-onyx 1.0.26 → 1.0.27

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.
@@ -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
 
@@ -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(['clear', 'set', 'merge', 'mergecollection'], onyxMethod)) {
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 !== 'clear' && !_underscore.default.isString(key)) {
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 'set':
1610
- set(key, value);
1620
+ case METHOD.SET:
1621
+ promises.push(set(key, value));
1611
1622
  break;
1612
- case 'merge':
1613
- merge(key, value);
1623
+ case METHOD.MERGE:
1624
+ promises.push(merge(key, value));
1614
1625
  break;
1615
- case 'mergecollection':
1616
- mergeCollection(key, value);
1626
+ case METHOD.MERGE_COLLECTION:
1627
+ promises.push(mergeCollection(key, value));
1617
1628
  break;
1618
- case 'clear':
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
  /**