relay-runtime 0.0.0-main-dbe0cbb6 → 0.0.0-main-9e60e09f
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/index.js +1 -1
- package/lib/store/RelayReader.js +53 -10
- package/lib/store/RelayStoreUtils.js +1 -0
- package/lib/store/ResolverCache.js +10 -2
- package/package.json +1 -1
- package/relay-runtime.js +2 -2
- package/relay-runtime.min.js +2 -2
- package/store/RelayReader.js.flow +75 -28
- package/store/RelayStoreTypes.js.flow +3 -2
- package/store/RelayStoreUtils.js.flow +1 -0
- package/store/ResolverCache.js.flow +18 -5
- package/util/RelayConcreteNode.js.flow +1 -1
package/index.js
CHANGED
package/lib/store/RelayReader.js
CHANGED
|
@@ -90,6 +90,7 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
90
90
|
this._selector = selector;
|
|
91
91
|
this._variables = selector.variables;
|
|
92
92
|
this._resolverCache = resolverCache;
|
|
93
|
+
this._fragmentName = selector.node.name;
|
|
93
94
|
}
|
|
94
95
|
|
|
95
96
|
var _proto = RelayReader.prototype;
|
|
@@ -219,7 +220,7 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
219
220
|
return;
|
|
220
221
|
}
|
|
221
222
|
|
|
222
|
-
var owner = this.
|
|
223
|
+
var owner = this._fragmentName;
|
|
223
224
|
|
|
224
225
|
switch (action) {
|
|
225
226
|
case 'THROW':
|
|
@@ -236,15 +237,21 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
236
237
|
if (this._missingRequiredFields == null) {
|
|
237
238
|
this._missingRequiredFields = {
|
|
238
239
|
action: action,
|
|
239
|
-
fields: [
|
|
240
|
+
fields: [{
|
|
241
|
+
path: fieldPath,
|
|
242
|
+
owner: owner
|
|
243
|
+
}]
|
|
244
|
+
};
|
|
245
|
+
} else {
|
|
246
|
+
this._missingRequiredFields = {
|
|
247
|
+
action: action,
|
|
248
|
+
fields: [].concat((0, _toConsumableArray2["default"])(this._missingRequiredFields.fields), [{
|
|
249
|
+
path: fieldPath,
|
|
250
|
+
owner: owner
|
|
251
|
+
}])
|
|
240
252
|
};
|
|
241
253
|
}
|
|
242
254
|
|
|
243
|
-
this._missingRequiredFields.fields.push({
|
|
244
|
-
path: fieldPath,
|
|
245
|
-
owner: owner
|
|
246
|
-
});
|
|
247
|
-
|
|
248
255
|
return;
|
|
249
256
|
|
|
250
257
|
default:
|
|
@@ -488,6 +495,8 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
488
495
|
|
|
489
496
|
var fragmentValue;
|
|
490
497
|
var fragmentReaderSelector;
|
|
498
|
+
var fragmentMissingRequiredFields;
|
|
499
|
+
var previousMissingRequriedFields;
|
|
491
500
|
var fragmentSeenRecordIDs = new Set();
|
|
492
501
|
|
|
493
502
|
var getDataForResolverFragment = function getDataForResolverFragment(singularReaderSelector) {
|
|
@@ -506,14 +515,18 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
506
515
|
|
|
507
516
|
_this._seenRecords = fragmentSeenRecordIDs;
|
|
508
517
|
var resolverFragmentData = {};
|
|
518
|
+
previousMissingRequriedFields = _this._missingRequiredFields;
|
|
519
|
+
_this._missingRequiredFields = null;
|
|
509
520
|
|
|
510
521
|
_this._createInlineDataOrResolverFragmentPointer(singularReaderSelector.node, record, resolverFragmentData);
|
|
511
522
|
|
|
523
|
+
fragmentMissingRequiredFields = _this._missingRequiredFields;
|
|
512
524
|
fragmentValue = (_resolverFragmentData = resolverFragmentData[FRAGMENTS_KEY]) === null || _resolverFragmentData === void 0 ? void 0 : _resolverFragmentData[fragment.name];
|
|
513
525
|
!(typeof fragmentValue === 'object' && fragmentValue !== null) ? process.env.NODE_ENV !== "production" ? invariant(false, "Expected reader data to contain a __fragments property with a property for the fragment named ".concat(fragment.name, ", but it is missing.")) : invariant(false) : void 0;
|
|
514
526
|
return fragmentValue;
|
|
515
527
|
} finally {
|
|
516
528
|
_this._seenRecords = existingSeenRecords;
|
|
529
|
+
_this._missingRequiredFields = previousMissingRequriedFields;
|
|
517
530
|
}
|
|
518
531
|
};
|
|
519
532
|
|
|
@@ -535,12 +548,18 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
535
548
|
fragmentValue: fragmentValue,
|
|
536
549
|
resolverID: resolverID,
|
|
537
550
|
seenRecordIDs: fragmentSeenRecordIDs,
|
|
538
|
-
readerSelector: fragmentReaderSelector
|
|
551
|
+
readerSelector: fragmentReaderSelector,
|
|
552
|
+
missingRequiredFields: fragmentMissingRequiredFields
|
|
539
553
|
};
|
|
540
554
|
});
|
|
541
555
|
}, getDataForResolverFragment),
|
|
542
556
|
result = _this$_resolverCache$[0],
|
|
543
|
-
seenRecord = _this$_resolverCache$[1]
|
|
557
|
+
seenRecord = _this$_resolverCache$[1],
|
|
558
|
+
missingRequiredFields = _this$_resolverCache$[2];
|
|
559
|
+
|
|
560
|
+
if (missingRequiredFields != null) {
|
|
561
|
+
this._addMissingRequiredFields(missingRequiredFields);
|
|
562
|
+
}
|
|
544
563
|
|
|
545
564
|
if (seenRecord != null) {
|
|
546
565
|
this._seenRecords.add(seenRecord);
|
|
@@ -815,13 +834,37 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
815
834
|
}
|
|
816
835
|
|
|
817
836
|
var inlineData = {};
|
|
837
|
+
var parentFragmentName = this._fragmentName;
|
|
838
|
+
this._fragmentName = fragmentSpreadOrFragment.name;
|
|
818
839
|
|
|
819
|
-
this._traverseSelections(fragmentSpreadOrFragment.selections, record, inlineData);
|
|
840
|
+
this._traverseSelections(fragmentSpreadOrFragment.selections, record, inlineData);
|
|
820
841
|
|
|
842
|
+
this._fragmentName = parentFragmentName; // $FlowFixMe[cannot-write] - writing into read-only field
|
|
821
843
|
|
|
822
844
|
fragmentPointers[fragmentSpreadOrFragment.name] = inlineData;
|
|
823
845
|
};
|
|
824
846
|
|
|
847
|
+
_proto._addMissingRequiredFields = function _addMissingRequiredFields(additional) {
|
|
848
|
+
if (this._missingRequiredFields == null) {
|
|
849
|
+
this._missingRequiredFields = additional;
|
|
850
|
+
return;
|
|
851
|
+
}
|
|
852
|
+
|
|
853
|
+
if (this._missingRequiredFields.action === 'THROW') {
|
|
854
|
+
return;
|
|
855
|
+
}
|
|
856
|
+
|
|
857
|
+
if (additional.action === 'THROW') {
|
|
858
|
+
this._missingRequiredFields = additional;
|
|
859
|
+
return;
|
|
860
|
+
}
|
|
861
|
+
|
|
862
|
+
this._missingRequiredFields = {
|
|
863
|
+
action: 'LOG',
|
|
864
|
+
fields: [].concat((0, _toConsumableArray2["default"])(this._missingRequiredFields.fields), (0, _toConsumableArray2["default"])(additional.fields))
|
|
865
|
+
};
|
|
866
|
+
};
|
|
867
|
+
|
|
825
868
|
return RelayReader;
|
|
826
869
|
}();
|
|
827
870
|
|
|
@@ -211,6 +211,7 @@ var RelayStoreUtils = {
|
|
|
211
211
|
RELAY_RESOLVER_INVALIDATION_KEY: '__resolverValueMayBeInvalid',
|
|
212
212
|
RELAY_RESOLVER_INPUTS_KEY: '__resolverInputValues',
|
|
213
213
|
RELAY_RESOLVER_READER_SELECTOR_KEY: '__resolverReaderSelector',
|
|
214
|
+
RELAY_RESOLVER_MISSING_REQUIRED_FIELDS_KEY: '__resolverMissingRequiredFields',
|
|
214
215
|
formatStorageKey: formatStorageKey,
|
|
215
216
|
getArgumentValue: getArgumentValue,
|
|
216
217
|
getArgumentValues: getArgumentValues,
|
|
@@ -24,6 +24,7 @@ var RelayModernRecord = require('./RelayModernRecord');
|
|
|
24
24
|
var _require2 = require('./RelayStoreUtils'),
|
|
25
25
|
RELAY_RESOLVER_INPUTS_KEY = _require2.RELAY_RESOLVER_INPUTS_KEY,
|
|
26
26
|
RELAY_RESOLVER_INVALIDATION_KEY = _require2.RELAY_RESOLVER_INVALIDATION_KEY,
|
|
27
|
+
RELAY_RESOLVER_MISSING_REQUIRED_FIELDS_KEY = _require2.RELAY_RESOLVER_MISSING_REQUIRED_FIELDS_KEY,
|
|
27
28
|
RELAY_RESOLVER_READER_SELECTOR_KEY = _require2.RELAY_RESOLVER_READER_SELECTOR_KEY,
|
|
28
29
|
RELAY_RESOLVER_VALUE_KEY = _require2.RELAY_RESOLVER_VALUE_KEY,
|
|
29
30
|
getStorageKey = _require2.getStorageKey;
|
|
@@ -39,7 +40,11 @@ var NoopResolverCache = /*#__PURE__*/function () {
|
|
|
39
40
|
var _proto = NoopResolverCache.prototype;
|
|
40
41
|
|
|
41
42
|
_proto.readFromCacheOrEvaluate = function readFromCacheOrEvaluate(record, field, variables, evaluate, getDataForResolverFragment) {
|
|
42
|
-
|
|
43
|
+
var _evaluate = evaluate(),
|
|
44
|
+
resolverResult = _evaluate.resolverResult,
|
|
45
|
+
missingRequiredFields = _evaluate.missingRequiredFields;
|
|
46
|
+
|
|
47
|
+
return [resolverResult, undefined, missingRequiredFields];
|
|
43
48
|
};
|
|
44
49
|
|
|
45
50
|
_proto.invalidateDataIDs = function invalidateDataIDs(updatedDataIDs) {};
|
|
@@ -85,6 +90,7 @@ var RecordResolverCache = /*#__PURE__*/function () {
|
|
|
85
90
|
RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_VALUE_KEY, evaluationResult.resolverResult);
|
|
86
91
|
RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_INPUTS_KEY, evaluationResult.fragmentValue);
|
|
87
92
|
RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_READER_SELECTOR_KEY, evaluationResult.readerSelector);
|
|
93
|
+
RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_MISSING_REQUIRED_FIELDS_KEY, evaluationResult.missingRequiredFields);
|
|
88
94
|
recordSource.set(linkedID, linkedRecord); // Link the resolver value record to the resolver field of the record being read:
|
|
89
95
|
|
|
90
96
|
var nextRecord = RelayModernRecord.clone(record);
|
|
@@ -112,7 +118,9 @@ var RecordResolverCache = /*#__PURE__*/function () {
|
|
|
112
118
|
|
|
113
119
|
|
|
114
120
|
var answer = linkedRecord[RELAY_RESOLVER_VALUE_KEY];
|
|
115
|
-
|
|
121
|
+
var missingRequiredFields = // $FlowFixMe[incompatible-type] - casting mixed
|
|
122
|
+
linkedRecord[RELAY_RESOLVER_MISSING_REQUIRED_FIELDS_KEY];
|
|
123
|
+
return [answer, linkedID, missingRequiredFields];
|
|
116
124
|
};
|
|
117
125
|
|
|
118
126
|
_proto2.invalidateDataIDs = function invalidateDataIDs(updatedDataIDs) {
|