relay-runtime 0.0.0-main-da757ca9 → 0.0.0-main-ee99ea4b
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/RelayConcreteVariables.js +7 -0
- package/lib/store/RelayReader.js +16 -1
- package/package.json +1 -1
- package/relay-runtime.js +2 -2
- package/relay-runtime.min.js +2 -2
- package/store/RelayConcreteVariables.js.flow +11 -2
- package/store/RelayReader.js.flow +26 -0
- package/util/ReaderNode.js.flow +4 -0
package/index.js
CHANGED
|
@@ -27,6 +27,13 @@ var invariant = require('invariant');
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
function getFragmentVariables(fragment, rootVariables, argumentVariables) {
|
|
30
|
+
// TODO: Support for legacy ReaderInlineDataFragmentSpread nodes.
|
|
31
|
+
// Remove this once all we've updated the ReaderInlineDataFragmentSpread
|
|
32
|
+
// type to indicate that all compiled artifacts have been updated.
|
|
33
|
+
if (fragment.argumentDefinitions == null) {
|
|
34
|
+
return argumentVariables;
|
|
35
|
+
}
|
|
36
|
+
|
|
30
37
|
var variables;
|
|
31
38
|
fragment.argumentDefinitions.forEach(function (definition) {
|
|
32
39
|
if (argumentVariables.hasOwnProperty(definition.name)) {
|
package/lib/store/RelayReader.js
CHANGED
|
@@ -42,6 +42,8 @@ var RelayFeatureFlags = require('../util/RelayFeatureFlags');
|
|
|
42
42
|
|
|
43
43
|
var ClientID = require('./ClientID');
|
|
44
44
|
|
|
45
|
+
var RelayConcreteVariables = require('./RelayConcreteVariables');
|
|
46
|
+
|
|
45
47
|
var RelayModernRecord = require('./RelayModernRecord');
|
|
46
48
|
|
|
47
49
|
var _require2 = require('./RelayStoreReactFlightUtils'),
|
|
@@ -747,6 +749,7 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
747
749
|
var _field$alias4;
|
|
748
750
|
|
|
749
751
|
var applicationName = (_field$alias4 = field.alias) !== null && _field$alias4 !== void 0 ? _field$alias4 : field.name;
|
|
752
|
+
getStorageKey(field, this._variables);
|
|
750
753
|
var storageKey = getStorageKey(field, this._variables);
|
|
751
754
|
var linkedID = RelayModernRecord.getLinkedRecordID(record, storageKey);
|
|
752
755
|
|
|
@@ -1008,9 +1011,21 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
1008
1011
|
var inlineData = {};
|
|
1009
1012
|
var parentFragmentName = this._fragmentName;
|
|
1010
1013
|
this._fragmentName = fragmentSpreadOrFragment.name;
|
|
1014
|
+
var parentVariables = this._variables; // We only want to update `this._variables` if we have compiler artifacts that support it.
|
|
1015
|
+
// Until we've rolled out the compiler portion of this change, we need to check at runtime.
|
|
1016
|
+
|
|
1017
|
+
if (fragmentSpreadOrFragment.argumentDefinitions != null) {
|
|
1018
|
+
// If the inline fragment spread has arguments, we need to temporarily
|
|
1019
|
+
// switch this._variables to include the fragment spread's arguments
|
|
1020
|
+
// for the duration of its traversal.
|
|
1021
|
+
var argumentVariables = fragmentSpreadOrFragment.args ? getArgumentValues(fragmentSpreadOrFragment.args, this._variables) : {};
|
|
1022
|
+
this._variables = RelayConcreteVariables.getFragmentVariables(fragmentSpreadOrFragment, this._owner.variables, argumentVariables);
|
|
1023
|
+
}
|
|
1024
|
+
|
|
1025
|
+
this._traverseSelections(fragmentSpreadOrFragment.selections, record, inlineData); // Put the parent variables back
|
|
1011
1026
|
|
|
1012
|
-
this._traverseSelections(fragmentSpreadOrFragment.selections, record, inlineData);
|
|
1013
1027
|
|
|
1028
|
+
this._variables = parentVariables;
|
|
1014
1029
|
this._fragmentName = parentFragmentName; // $FlowFixMe[cannot-write] - writing into read-only field
|
|
1015
1030
|
|
|
1016
1031
|
fragmentPointers[fragmentSpreadOrFragment.name] = inlineData;
|