relay-runtime 11.0.2 → 13.0.0-rc.2

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.
Files changed (219) hide show
  1. package/README.md +67 -0
  2. package/handlers/RelayDefaultHandlerProvider.js.flow +3 -3
  3. package/handlers/connection/ConnectionHandler.js.flow +9 -18
  4. package/handlers/connection/ConnectionInterface.js.flow +1 -1
  5. package/handlers/connection/MutationHandlers.js.flow +8 -12
  6. package/index.js +1 -1
  7. package/index.js.flow +57 -35
  8. package/lib/handlers/RelayDefaultHandlerProvider.js +1 -1
  9. package/lib/handlers/connection/ConnectionHandler.js +13 -19
  10. package/lib/handlers/connection/ConnectionInterface.js +1 -1
  11. package/lib/handlers/connection/MutationHandlers.js +4 -7
  12. package/lib/index.js +59 -44
  13. package/lib/multi-actor-environment/ActorIdentifier.js +12 -2
  14. package/lib/multi-actor-environment/ActorSpecificEnvironment.js +64 -20
  15. package/lib/multi-actor-environment/ActorUtils.js +27 -0
  16. package/lib/multi-actor-environment/MultiActorEnvironment.js +324 -61
  17. package/lib/multi-actor-environment/MultiActorEnvironmentTypes.js +1 -1
  18. package/lib/multi-actor-environment/index.js +6 -2
  19. package/lib/mutations/RelayDeclarativeMutationConfig.js +5 -2
  20. package/lib/mutations/RelayRecordProxy.js +4 -3
  21. package/lib/mutations/RelayRecordSourceMutator.js +4 -3
  22. package/lib/mutations/RelayRecordSourceProxy.js +13 -5
  23. package/lib/mutations/RelayRecordSourceSelectorProxy.js +19 -6
  24. package/lib/mutations/applyOptimisticMutation.js +7 -7
  25. package/lib/mutations/commitLocalUpdate.js +1 -1
  26. package/lib/mutations/commitMutation.js +15 -11
  27. package/lib/mutations/readUpdatableQuery_EXPERIMENTAL.js +242 -0
  28. package/lib/mutations/validateMutation.js +11 -6
  29. package/lib/network/ConvertToExecuteFunction.js +3 -2
  30. package/lib/network/RelayNetwork.js +4 -3
  31. package/lib/network/RelayNetworkTypes.js +1 -1
  32. package/lib/network/RelayObservable.js +1 -1
  33. package/lib/network/RelayQueryResponseCache.js +22 -6
  34. package/lib/network/wrapNetworkWithLogObserver.js +79 -0
  35. package/lib/query/GraphQLTag.js +3 -2
  36. package/lib/query/PreloadableQueryRegistry.js +1 -1
  37. package/lib/query/fetchQuery.js +7 -6
  38. package/lib/query/fetchQueryInternal.js +1 -1
  39. package/lib/query/fetchQuery_DEPRECATED.js +3 -2
  40. package/lib/store/ClientID.js +8 -2
  41. package/lib/store/DataChecker.js +124 -55
  42. package/lib/store/OperationExecutor.js +489 -215
  43. package/lib/store/RelayConcreteVariables.js +27 -9
  44. package/lib/store/RelayExperimentalGraphResponseHandler.js +153 -0
  45. package/lib/store/RelayExperimentalGraphResponseTransform.js +391 -0
  46. package/lib/store/RelayModernEnvironment.js +100 -120
  47. package/lib/store/RelayModernFragmentSpecResolver.js +53 -27
  48. package/lib/store/RelayModernOperationDescriptor.js +3 -2
  49. package/lib/store/RelayModernRecord.js +48 -13
  50. package/lib/store/RelayModernSelector.js +15 -9
  51. package/lib/store/RelayModernStore.js +56 -23
  52. package/lib/store/RelayOperationTracker.js +34 -24
  53. package/lib/store/RelayOptimisticRecordSource.js +1 -1
  54. package/lib/store/RelayPublishQueue.js +35 -11
  55. package/lib/store/RelayReader.js +257 -72
  56. package/lib/store/RelayRecordSource.js +88 -4
  57. package/lib/store/RelayRecordState.js +1 -1
  58. package/lib/store/RelayReferenceMarker.js +34 -22
  59. package/lib/store/RelayResponseNormalizer.js +172 -96
  60. package/lib/store/RelayStoreReactFlightUtils.js +5 -11
  61. package/lib/store/RelayStoreSubscriptions.js +15 -10
  62. package/lib/store/RelayStoreTypes.js +1 -1
  63. package/lib/store/RelayStoreUtils.js +13 -8
  64. package/lib/store/ResolverCache.js +213 -0
  65. package/lib/store/ResolverFragments.js +10 -6
  66. package/lib/store/StoreInspector.js +1 -1
  67. package/lib/store/TypeID.js +1 -1
  68. package/lib/store/ViewerPattern.js +1 -1
  69. package/lib/store/cloneRelayHandleSourceField.js +6 -5
  70. package/lib/store/cloneRelayScalarHandleSourceField.js +6 -5
  71. package/lib/store/createFragmentSpecResolver.js +1 -1
  72. package/lib/store/createRelayContext.js +5 -3
  73. package/lib/store/defaultGetDataID.js +1 -1
  74. package/lib/store/defaultRequiredFieldLogger.js +1 -1
  75. package/lib/store/hasOverlappingIDs.js +1 -1
  76. package/lib/store/isRelayModernEnvironment.js +1 -1
  77. package/lib/store/normalizeRelayPayload.js +1 -1
  78. package/lib/store/readInlineData.js +7 -3
  79. package/lib/subscription/requestSubscription.js +32 -34
  80. package/lib/util/JSResourceTypes.flow.js +1 -1
  81. package/lib/util/NormalizationNode.js +1 -1
  82. package/lib/util/ReaderNode.js +1 -1
  83. package/lib/util/RelayConcreteNode.js +3 -1
  84. package/lib/util/RelayDefaultHandleKey.js +1 -1
  85. package/lib/util/RelayError.js +1 -1
  86. package/lib/util/RelayFeatureFlags.js +10 -7
  87. package/lib/util/RelayProfiler.js +1 -1
  88. package/lib/util/RelayReplaySubject.js +22 -7
  89. package/lib/util/RelayRuntimeTypes.js +1 -7
  90. package/lib/util/StringInterner.js +71 -0
  91. package/lib/util/createPayloadFor3DField.js +1 -1
  92. package/lib/util/deepFreeze.js +1 -1
  93. package/lib/util/generateID.js +1 -1
  94. package/lib/util/getAllRootVariables.js +29 -0
  95. package/lib/util/getFragmentIdentifier.js +16 -8
  96. package/lib/util/getOperation.js +3 -2
  97. package/lib/util/getPaginationMetadata.js +41 -0
  98. package/lib/util/getPaginationVariables.js +66 -0
  99. package/lib/util/getPendingOperationsForFragment.js +55 -0
  100. package/lib/util/getRefetchMetadata.js +36 -0
  101. package/lib/util/getRelayHandleKey.js +3 -3
  102. package/lib/util/getRequestIdentifier.js +3 -3
  103. package/lib/util/getValueAtPath.js +51 -0
  104. package/lib/util/isEmptyObject.js +2 -2
  105. package/lib/util/isPromise.js +1 -1
  106. package/lib/util/isScalarAndEqual.js +1 -1
  107. package/lib/util/recycleNodesInto.js +1 -1
  108. package/lib/util/registerEnvironmentWithDevTools.js +26 -0
  109. package/lib/util/reportMissingRequiredFields.js +1 -1
  110. package/lib/util/resolveImmediate.js +1 -1
  111. package/lib/util/stableCopy.js +1 -1
  112. package/lib/util/withDuration.js +31 -0
  113. package/multi-actor-environment/ActorIdentifier.js.flow +18 -2
  114. package/multi-actor-environment/ActorSpecificEnvironment.js.flow +94 -58
  115. package/multi-actor-environment/ActorUtils.js.flow +33 -0
  116. package/multi-actor-environment/MultiActorEnvironment.js.flow +366 -93
  117. package/multi-actor-environment/MultiActorEnvironmentTypes.js.flow +88 -23
  118. package/multi-actor-environment/index.js.flow +3 -1
  119. package/mutations/RelayDeclarativeMutationConfig.js.flow +33 -27
  120. package/mutations/RelayRecordProxy.js.flow +5 -6
  121. package/mutations/RelayRecordSourceMutator.js.flow +5 -7
  122. package/mutations/RelayRecordSourceProxy.js.flow +20 -11
  123. package/mutations/RelayRecordSourceSelectorProxy.js.flow +23 -8
  124. package/mutations/applyOptimisticMutation.js.flow +14 -15
  125. package/mutations/commitLocalUpdate.js.flow +2 -2
  126. package/mutations/commitMutation.js.flow +36 -47
  127. package/mutations/readUpdatableQuery_EXPERIMENTAL.js.flow +318 -0
  128. package/mutations/validateMutation.js.flow +27 -17
  129. package/network/ConvertToExecuteFunction.js.flow +3 -3
  130. package/network/RelayNetwork.js.flow +5 -6
  131. package/network/RelayNetworkTypes.js.flow +1 -1
  132. package/network/RelayObservable.js.flow +2 -2
  133. package/network/RelayQueryResponseCache.js.flow +35 -22
  134. package/network/wrapNetworkWithLogObserver.js.flow +99 -0
  135. package/package.json +2 -2
  136. package/query/GraphQLTag.js.flow +11 -11
  137. package/query/PreloadableQueryRegistry.js.flow +5 -3
  138. package/query/fetchQuery.js.flow +19 -19
  139. package/query/fetchQueryInternal.js.flow +7 -10
  140. package/query/fetchQuery_DEPRECATED.js.flow +7 -7
  141. package/relay-runtime.js +2 -2
  142. package/relay-runtime.min.js +2 -2
  143. package/store/ClientID.js.flow +15 -4
  144. package/store/DataChecker.js.flow +142 -60
  145. package/store/OperationExecutor.js.flow +575 -320
  146. package/store/RelayConcreteVariables.js.flow +28 -9
  147. package/store/RelayExperimentalGraphResponseHandler.js.flow +121 -0
  148. package/store/RelayExperimentalGraphResponseTransform.js.flow +470 -0
  149. package/store/RelayModernEnvironment.js.flow +91 -115
  150. package/store/RelayModernFragmentSpecResolver.js.flow +56 -32
  151. package/store/RelayModernOperationDescriptor.js.flow +13 -8
  152. package/store/RelayModernRecord.js.flow +68 -12
  153. package/store/RelayModernSelector.js.flow +25 -15
  154. package/store/RelayModernStore.js.flow +67 -32
  155. package/store/RelayOperationTracker.js.flow +60 -44
  156. package/store/RelayOptimisticRecordSource.js.flow +3 -3
  157. package/store/RelayPublishQueue.js.flow +74 -32
  158. package/store/RelayReader.js.flow +319 -100
  159. package/store/RelayRecordSource.js.flow +73 -7
  160. package/store/RelayRecordState.js.flow +1 -1
  161. package/store/RelayReferenceMarker.js.flow +41 -27
  162. package/store/RelayResponseNormalizer.js.flow +204 -86
  163. package/store/RelayStoreReactFlightUtils.js.flow +5 -12
  164. package/store/RelayStoreSubscriptions.js.flow +20 -12
  165. package/store/RelayStoreTypes.js.flow +200 -41
  166. package/store/RelayStoreUtils.js.flow +25 -12
  167. package/store/ResolverCache.js.flow +249 -0
  168. package/store/ResolverFragments.js.flow +16 -20
  169. package/store/StoreInspector.js.flow +3 -3
  170. package/store/TypeID.js.flow +2 -2
  171. package/store/ViewerPattern.js.flow +3 -3
  172. package/store/cloneRelayHandleSourceField.js.flow +6 -7
  173. package/store/cloneRelayScalarHandleSourceField.js.flow +6 -7
  174. package/store/createFragmentSpecResolver.js.flow +4 -5
  175. package/store/createRelayContext.js.flow +4 -4
  176. package/store/defaultGetDataID.js.flow +1 -1
  177. package/store/defaultRequiredFieldLogger.js.flow +1 -1
  178. package/store/hasOverlappingIDs.js.flow +1 -1
  179. package/store/isRelayModernEnvironment.js.flow +1 -1
  180. package/store/normalizeRelayPayload.js.flow +7 -8
  181. package/store/readInlineData.js.flow +8 -9
  182. package/subscription/requestSubscription.js.flow +55 -51
  183. package/util/JSResourceTypes.flow.js.flow +1 -1
  184. package/util/NormalizationNode.js.flow +11 -4
  185. package/util/ReaderNode.js.flow +25 -2
  186. package/util/RelayConcreteNode.js.flow +5 -1
  187. package/util/RelayDefaultHandleKey.js.flow +1 -1
  188. package/util/RelayError.js.flow +1 -1
  189. package/util/RelayFeatureFlags.js.flow +23 -15
  190. package/util/RelayProfiler.js.flow +1 -1
  191. package/util/RelayReplaySubject.js.flow +10 -10
  192. package/util/RelayRuntimeTypes.js.flow +70 -3
  193. package/util/StringInterner.js.flow +69 -0
  194. package/util/createPayloadFor3DField.js.flow +4 -4
  195. package/util/deepFreeze.js.flow +1 -1
  196. package/util/generateID.js.flow +1 -1
  197. package/util/getAllRootVariables.js.flow +36 -0
  198. package/util/getFragmentIdentifier.js.flow +28 -16
  199. package/util/getOperation.js.flow +3 -3
  200. package/util/getPaginationMetadata.js.flow +69 -0
  201. package/util/getPaginationVariables.js.flow +108 -0
  202. package/util/getPendingOperationsForFragment.js.flow +62 -0
  203. package/util/getRefetchMetadata.js.flow +76 -0
  204. package/util/getRelayHandleKey.js.flow +2 -3
  205. package/util/getRequestIdentifier.js.flow +4 -4
  206. package/util/getValueAtPath.js.flow +46 -0
  207. package/util/isEmptyObject.js.flow +2 -1
  208. package/util/isPromise.js.flow +1 -1
  209. package/util/isScalarAndEqual.js.flow +1 -1
  210. package/util/recycleNodesInto.js.flow +1 -1
  211. package/util/registerEnvironmentWithDevTools.js.flow +33 -0
  212. package/util/reportMissingRequiredFields.js.flow +1 -1
  213. package/util/resolveImmediate.js.flow +2 -2
  214. package/util/stableCopy.js.flow +1 -1
  215. package/util/withDuration.js.flow +32 -0
  216. package/lib/store/RelayRecordSourceMapImpl.js +0 -107
  217. package/lib/store/RelayStoreSubscriptionsUsingMapByID.js +0 -318
  218. package/store/RelayRecordSourceMapImpl.js.flow +0 -91
  219. package/store/RelayStoreSubscriptionsUsingMapByID.js.flow +0 -283
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -14,26 +14,30 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
14
14
 
15
15
  var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
16
16
 
17
+ var getOperation = require('../util/getOperation');
18
+
17
19
  var RelayConcreteNode = require('../util/RelayConcreteNode');
18
20
 
19
21
  var RelayFeatureFlags = require('../util/RelayFeatureFlags');
20
22
 
23
+ var cloneRelayHandleSourceField = require('./cloneRelayHandleSourceField');
24
+
25
+ var _require = require('./RelayConcreteVariables'),
26
+ getLocalVariables = _require.getLocalVariables;
27
+
21
28
  var RelayModernRecord = require('./RelayModernRecord');
22
29
 
23
30
  var RelayStoreReactFlightUtils = require('./RelayStoreReactFlightUtils');
24
31
 
25
32
  var RelayStoreUtils = require('./RelayStoreUtils');
26
33
 
27
- var cloneRelayHandleSourceField = require('./cloneRelayHandleSourceField');
28
-
29
- var getOperation = require('../util/getOperation');
34
+ var _require2 = require('./TypeID'),
35
+ generateTypeID = _require2.generateTypeID;
30
36
 
31
37
  var invariant = require('invariant');
32
38
 
33
- var _require = require('./TypeID'),
34
- generateTypeID = _require.generateTypeID;
35
-
36
- var CONDITION = RelayConcreteNode.CONDITION,
39
+ var ACTOR_CHANGE = RelayConcreteNode.ACTOR_CHANGE,
40
+ CONDITION = RelayConcreteNode.CONDITION,
37
41
  CLIENT_COMPONENT = RelayConcreteNode.CLIENT_COMPONENT,
38
42
  CLIENT_EXTENSION = RelayConcreteNode.CLIENT_EXTENSION,
39
43
  DEFER = RelayConcreteNode.DEFER,
@@ -96,8 +100,7 @@ var RelayReferenceMarker = /*#__PURE__*/function () {
96
100
  };
97
101
 
98
102
  _proto._getVariableValue = function _getVariableValue(name) {
99
- !this._variables.hasOwnProperty(name) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayReferenceMarker(): Undefined variable `%s`.', name) : invariant(false) : void 0; // $FlowFixMe[cannot-write]
100
-
103
+ !this._variables.hasOwnProperty(name) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayReferenceMarker(): Undefined variable `%s`.', name) : invariant(false) : void 0;
101
104
  return this._variables[name];
102
105
  };
103
106
 
@@ -107,6 +110,12 @@ var RelayReferenceMarker = /*#__PURE__*/function () {
107
110
  selections.forEach(function (selection) {
108
111
  /* eslint-disable no-fallthrough */
109
112
  switch (selection.kind) {
113
+ case ACTOR_CHANGE:
114
+ // TODO: T89695151 Support multi-actor record sources in RelayReferenceMarker.js
115
+ _this._traverseLink(selection.linkedField, record);
116
+
117
+ break;
118
+
110
119
  case LINKED_FIELD:
111
120
  if (selection.plural) {
112
121
  _this._traversePluralLink(selection, record);
@@ -117,7 +126,7 @@ var RelayReferenceMarker = /*#__PURE__*/function () {
117
126
  break;
118
127
 
119
128
  case CONDITION:
120
- var conditionValue = _this._getVariableValue(selection.condition);
129
+ var conditionValue = Boolean(_this._getVariableValue(selection.condition));
121
130
 
122
131
  if (conditionValue === selection.passingValue) {
123
132
  _this._traverseSelections(selection.selections, record);
@@ -132,24 +141,25 @@ var RelayReferenceMarker = /*#__PURE__*/function () {
132
141
  if (typeName != null && typeName === selection.type) {
133
142
  _this._traverseSelections(selection.selections, record);
134
143
  }
135
- } else if (RelayFeatureFlags.ENABLE_PRECISE_TYPE_REFINEMENT) {
144
+ } else {
136
145
  var _typeName = RelayModernRecord.getType(record);
137
146
 
138
147
  var typeID = generateTypeID(_typeName);
139
148
 
140
149
  _this._references.add(typeID);
141
150
 
142
- _this._traverseSelections(selection.selections, record);
143
- } else {
144
151
  _this._traverseSelections(selection.selections, record);
145
152
  }
146
153
 
147
154
  break;
148
- // $FlowFixMe[incompatible-type]
149
155
 
150
156
  case FRAGMENT_SPREAD:
157
+ var prevVariables = _this._variables;
158
+ _this._variables = getLocalVariables(_this._variables, selection.fragment.argumentDefinitions, selection.args);
159
+
151
160
  _this._traverseSelections(selection.fragment.selections, record);
152
161
 
162
+ _this._variables = prevVariables;
153
163
  break;
154
164
 
155
165
  case LINKED_HANDLE:
@@ -184,13 +194,11 @@ var RelayReferenceMarker = /*#__PURE__*/function () {
184
194
 
185
195
  case TYPE_DISCRIMINATOR:
186
196
  {
187
- if (RelayFeatureFlags.ENABLE_PRECISE_TYPE_REFINEMENT) {
188
- var _typeName2 = RelayModernRecord.getType(record);
197
+ var _typeName2 = RelayModernRecord.getType(record);
189
198
 
190
- var _typeID = generateTypeID(_typeName2);
199
+ var _typeID = generateTypeID(_typeName2);
191
200
 
192
- _this._references.add(_typeID);
193
- }
201
+ _this._references.add(_typeID);
194
202
 
195
203
  break;
196
204
  }
@@ -245,9 +253,13 @@ var RelayReferenceMarker = /*#__PURE__*/function () {
245
253
  var normalizationRootNode = operationLoader.get(operationReference);
246
254
 
247
255
  if (normalizationRootNode != null) {
248
- var selections = getOperation(normalizationRootNode).selections;
256
+ var operation = getOperation(normalizationRootNode);
257
+ var prevVariables = this._variables;
258
+ this._variables = getLocalVariables(this._variables, operation.argumentDefinitions, moduleImport.args);
259
+
260
+ this._traverseSelections(operation.selections, record);
249
261
 
250
- this._traverseSelections(selections, record);
262
+ this._variables = prevVariables;
251
263
  } // Otherwise, if the operation is not available, we assume that the data
252
264
  // cannot have been processed yet and therefore isn't in the store to
253
265
  // begin with.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -16,59 +16,67 @@ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime
16
16
 
17
17
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
18
18
 
19
+ var _require = require('../multi-actor-environment/ActorUtils'),
20
+ ACTOR_IDENTIFIER_FIELD_NAME = _require.ACTOR_IDENTIFIER_FIELD_NAME,
21
+ getActorIdentifierFromPayload = _require.getActorIdentifierFromPayload;
22
+
23
+ var _require2 = require('../util/RelayConcreteNode'),
24
+ ACTOR_CHANGE = _require2.ACTOR_CHANGE,
25
+ CLIENT_COMPONENT = _require2.CLIENT_COMPONENT,
26
+ CLIENT_EXTENSION = _require2.CLIENT_EXTENSION,
27
+ CONDITION = _require2.CONDITION,
28
+ DEFER = _require2.DEFER,
29
+ FLIGHT_FIELD = _require2.FLIGHT_FIELD,
30
+ FRAGMENT_SPREAD = _require2.FRAGMENT_SPREAD,
31
+ INLINE_FRAGMENT = _require2.INLINE_FRAGMENT,
32
+ LINKED_FIELD = _require2.LINKED_FIELD,
33
+ LINKED_HANDLE = _require2.LINKED_HANDLE,
34
+ MODULE_IMPORT = _require2.MODULE_IMPORT,
35
+ SCALAR_FIELD = _require2.SCALAR_FIELD,
36
+ SCALAR_HANDLE = _require2.SCALAR_HANDLE,
37
+ STREAM = _require2.STREAM,
38
+ TYPE_DISCRIMINATOR = _require2.TYPE_DISCRIMINATOR;
39
+
19
40
  var RelayFeatureFlags = require('../util/RelayFeatureFlags');
20
41
 
42
+ var _require3 = require('./ClientID'),
43
+ generateClientID = _require3.generateClientID,
44
+ isClientID = _require3.isClientID;
45
+
46
+ var _require4 = require('./RelayConcreteVariables'),
47
+ getLocalVariables = _require4.getLocalVariables;
48
+
21
49
  var RelayModernRecord = require('./RelayModernRecord');
22
50
 
51
+ var _require5 = require('./RelayModernSelector'),
52
+ createNormalizationSelector = _require5.createNormalizationSelector;
53
+
54
+ var _require6 = require('./RelayStoreReactFlightUtils'),
55
+ REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY = _require6.REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY,
56
+ REACT_FLIGHT_TREE_STORAGE_KEY = _require6.REACT_FLIGHT_TREE_STORAGE_KEY,
57
+ REACT_FLIGHT_TYPE_NAME = _require6.REACT_FLIGHT_TYPE_NAME,
58
+ refineToReactFlightPayloadData = _require6.refineToReactFlightPayloadData;
59
+
60
+ var _require7 = require('./RelayStoreUtils'),
61
+ ROOT_ID = _require7.ROOT_ID,
62
+ ROOT_TYPE = _require7.ROOT_TYPE,
63
+ TYPENAME_KEY = _require7.TYPENAME_KEY,
64
+ getArgumentValues = _require7.getArgumentValues,
65
+ getHandleStorageKey = _require7.getHandleStorageKey,
66
+ getModuleComponentKey = _require7.getModuleComponentKey,
67
+ getModuleOperationKey = _require7.getModuleOperationKey,
68
+ getStorageKey = _require7.getStorageKey;
69
+
70
+ var _require8 = require('./TypeID'),
71
+ TYPE_SCHEMA_TYPE = _require8.TYPE_SCHEMA_TYPE,
72
+ generateTypeID = _require8.generateTypeID;
73
+
23
74
  var areEqual = require("fbjs/lib/areEqual");
24
75
 
25
76
  var invariant = require('invariant');
26
77
 
27
78
  var warning = require("fbjs/lib/warning");
28
79
 
29
- var _require = require('../util/RelayConcreteNode'),
30
- CONDITION = _require.CONDITION,
31
- CLIENT_COMPONENT = _require.CLIENT_COMPONENT,
32
- CLIENT_EXTENSION = _require.CLIENT_EXTENSION,
33
- DEFER = _require.DEFER,
34
- FLIGHT_FIELD = _require.FLIGHT_FIELD,
35
- FRAGMENT_SPREAD = _require.FRAGMENT_SPREAD,
36
- INLINE_FRAGMENT = _require.INLINE_FRAGMENT,
37
- LINKED_FIELD = _require.LINKED_FIELD,
38
- LINKED_HANDLE = _require.LINKED_HANDLE,
39
- MODULE_IMPORT = _require.MODULE_IMPORT,
40
- SCALAR_FIELD = _require.SCALAR_FIELD,
41
- SCALAR_HANDLE = _require.SCALAR_HANDLE,
42
- STREAM = _require.STREAM,
43
- TYPE_DISCRIMINATOR = _require.TYPE_DISCRIMINATOR;
44
-
45
- var _require2 = require('./ClientID'),
46
- generateClientID = _require2.generateClientID,
47
- isClientID = _require2.isClientID;
48
-
49
- var _require3 = require('./RelayModernSelector'),
50
- createNormalizationSelector = _require3.createNormalizationSelector;
51
-
52
- var _require4 = require('./RelayStoreReactFlightUtils'),
53
- refineToReactFlightPayloadData = _require4.refineToReactFlightPayloadData,
54
- REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY = _require4.REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY,
55
- REACT_FLIGHT_TREE_STORAGE_KEY = _require4.REACT_FLIGHT_TREE_STORAGE_KEY,
56
- REACT_FLIGHT_TYPE_NAME = _require4.REACT_FLIGHT_TYPE_NAME;
57
-
58
- var _require5 = require('./RelayStoreUtils'),
59
- getArgumentValues = _require5.getArgumentValues,
60
- getHandleStorageKey = _require5.getHandleStorageKey,
61
- getModuleComponentKey = _require5.getModuleComponentKey,
62
- getModuleOperationKey = _require5.getModuleOperationKey,
63
- getStorageKey = _require5.getStorageKey,
64
- TYPENAME_KEY = _require5.TYPENAME_KEY,
65
- ROOT_ID = _require5.ROOT_ID,
66
- ROOT_TYPE = _require5.ROOT_TYPE;
67
-
68
- var _require6 = require('./TypeID'),
69
- generateTypeID = _require6.generateTypeID,
70
- TYPE_SCHEMA_TYPE = _require6.TYPE_SCHEMA_TYPE;
71
-
72
80
  /**
73
81
  * Normalizes the results of a query and standard GraphQL response, writing the
74
82
  * normalized records/fields into the given MutableRecordSource.
@@ -89,13 +97,14 @@ function normalize(recordSource, selector, response, options) {
89
97
 
90
98
  var RelayResponseNormalizer = /*#__PURE__*/function () {
91
99
  function RelayResponseNormalizer(recordSource, variables, options) {
100
+ this._actorIdentifier = options.actorIdentifier;
92
101
  this._getDataId = options.getDataID;
93
102
  this._handleFieldPayloads = [];
94
103
  this._treatMissingFieldsAsNull = options.treatMissingFieldsAsNull;
95
104
  this._incrementalPlaceholders = [];
96
105
  this._isClientExtension = false;
97
106
  this._isUnmatchedAbstractType = false;
98
- this._moduleImportPayloads = [];
107
+ this._followupPayloads = [];
99
108
  this._path = options.path ? (0, _toConsumableArray2["default"])(options.path) : [];
100
109
  this._recordSource = recordSource;
101
110
  this._variables = variables;
@@ -117,15 +126,14 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
117
126
  errors: null,
118
127
  fieldPayloads: this._handleFieldPayloads,
119
128
  incrementalPlaceholders: this._incrementalPlaceholders,
120
- moduleImportPayloads: this._moduleImportPayloads,
129
+ followupPayloads: this._followupPayloads,
121
130
  source: this._recordSource,
122
131
  isFinal: false
123
132
  };
124
133
  };
125
134
 
126
135
  _proto._getVariableValue = function _getVariableValue(name) {
127
- !this._variables.hasOwnProperty(name) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayResponseNormalizer(): Undefined variable `%s`.', name) : invariant(false) : void 0; // $FlowFixMe[cannot-write]
128
-
136
+ !this._variables.hasOwnProperty(name) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayResponseNormalizer(): Undefined variable `%s`.', name) : invariant(false) : void 0;
129
137
  return this._variables[name];
130
138
  };
131
139
 
@@ -147,7 +155,7 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
147
155
  break;
148
156
 
149
157
  case CONDITION:
150
- var conditionValue = this._getVariableValue(selection.condition);
158
+ var conditionValue = Boolean(this._getVariableValue(selection.condition));
151
159
 
152
160
  if (conditionValue === selection.passingValue) {
153
161
  this._traverseSelections(selection, record, data);
@@ -157,8 +165,12 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
157
165
 
158
166
  case FRAGMENT_SPREAD:
159
167
  {
168
+ var prevVariables = this._variables;
169
+ this._variables = getLocalVariables(this._variables, selection.fragment.argumentDefinitions, selection.args);
170
+
160
171
  this._traverseSelections(selection.fragment, record, data);
161
172
 
173
+ this._variables = prevVariables;
162
174
  break;
163
175
  }
164
176
 
@@ -172,7 +184,7 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
172
184
  if (_typeName === selection.type) {
173
185
  this._traverseSelections(selection, record, data);
174
186
  }
175
- } else if (RelayFeatureFlags.ENABLE_PRECISE_TYPE_REFINEMENT) {
187
+ } else {
176
188
  var implementsInterface = data.hasOwnProperty(abstractKey);
177
189
 
178
190
  var _typeName2 = RelayModernRecord.getType(record);
@@ -192,18 +204,6 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
192
204
  if (implementsInterface) {
193
205
  this._traverseSelections(selection, record, data);
194
206
  }
195
- } else {
196
- // legacy behavior for abstract refinements: always normalize even
197
- // if the type doesn't conform, but track if the type matches or not
198
- // for determining whether response fields are expected to be present
199
- var _implementsInterface = data.hasOwnProperty(abstractKey);
200
-
201
- var parentIsUnmatchedAbstractType = this._isUnmatchedAbstractType;
202
- this._isUnmatchedAbstractType = this._isUnmatchedAbstractType || !_implementsInterface;
203
-
204
- this._traverseSelections(selection, record, data);
205
-
206
- this._isUnmatchedAbstractType = parentIsUnmatchedAbstractType;
207
207
  }
208
208
 
209
209
  break;
@@ -211,26 +211,23 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
211
211
 
212
212
  case TYPE_DISCRIMINATOR:
213
213
  {
214
- if (RelayFeatureFlags.ENABLE_PRECISE_TYPE_REFINEMENT) {
215
- var _abstractKey = selection.abstractKey;
214
+ var _abstractKey = selection.abstractKey;
216
215
 
217
- var _implementsInterface2 = data.hasOwnProperty(_abstractKey);
216
+ var _implementsInterface = data.hasOwnProperty(_abstractKey);
218
217
 
219
- var _typeName3 = RelayModernRecord.getType(record);
218
+ var _typeName3 = RelayModernRecord.getType(record);
220
219
 
221
- var _typeID = generateTypeID(_typeName3);
220
+ var _typeID = generateTypeID(_typeName3);
222
221
 
223
- var _typeRecord = this._recordSource.get(_typeID);
222
+ var _typeRecord = this._recordSource.get(_typeID);
224
223
 
225
- if (_typeRecord == null) {
226
- _typeRecord = RelayModernRecord.create(_typeID, TYPE_SCHEMA_TYPE);
224
+ if (_typeRecord == null) {
225
+ _typeRecord = RelayModernRecord.create(_typeID, TYPE_SCHEMA_TYPE);
227
226
 
228
- this._recordSource.set(_typeID, _typeRecord);
229
- }
230
-
231
- RelayModernRecord.setValue(_typeRecord, _abstractKey, _implementsInterface2);
227
+ this._recordSource.set(_typeID, _typeRecord);
232
228
  }
233
229
 
230
+ RelayModernRecord.setValue(_typeRecord, _abstractKey, _implementsInterface);
234
231
  break;
235
232
  }
236
233
 
@@ -241,12 +238,17 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
241
238
  var handleKey = getHandleStorageKey(selection, this._variables);
242
239
 
243
240
  this._handleFieldPayloads.push({
241
+ /* $FlowFixMe[class-object-subtyping] added when improving typing
242
+ * for this parameters */
244
243
  args: args,
245
244
  dataID: RelayModernRecord.getDataID(record),
246
245
  fieldKey: fieldKey,
247
246
  handle: selection.handle,
248
247
  handleKey: handleKey,
249
- handleArgs: selection.handleArgs ? getArgumentValues(selection.handleArgs, this._variables) : {}
248
+ handleArgs: selection.handleArgs ?
249
+ /* $FlowFixMe[class-object-subtyping] added when improving typing
250
+ * for this parameters */
251
+ getArgumentValues(selection.handleArgs, this._variables) : {}
250
252
  });
251
253
 
252
254
  break;
@@ -293,6 +295,11 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
293
295
 
294
296
  break;
295
297
 
298
+ case ACTOR_CHANGE:
299
+ this._normalizeActorChange(node, selection, record, data);
300
+
301
+ break;
302
+
296
303
  default:
297
304
  selection;
298
305
  !false ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayResponseNormalizer(): Unexpected ast kind `%s`.', selection.kind) : invariant(false) : void 0;
@@ -320,7 +327,8 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
320
327
  label: defer.label,
321
328
  path: (0, _toConsumableArray2["default"])(this._path),
322
329
  selector: createNormalizationSelector(defer, RelayModernRecord.getDataID(record), this._variables),
323
- typeName: RelayModernRecord.getType(record)
330
+ typeName: RelayModernRecord.getType(record),
331
+ actorIdentifier: this._actorIdentifier
324
332
  });
325
333
  }
326
334
  };
@@ -346,7 +354,8 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
346
354
  path: (0, _toConsumableArray2["default"])(this._path),
347
355
  parentID: RelayModernRecord.getDataID(record),
348
356
  node: stream,
349
- variables: this._variables
357
+ variables: this._variables,
358
+ actorIdentifier: this._actorIdentifier
350
359
  });
351
360
  }
352
361
  };
@@ -362,13 +371,16 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
362
371
  RelayModernRecord.setValue(record, operationKey, operationReference !== null && operationReference !== void 0 ? operationReference : null);
363
372
 
364
373
  if (operationReference != null) {
365
- this._moduleImportPayloads.push({
374
+ this._followupPayloads.push({
375
+ kind: 'ModuleImportPayload',
376
+ args: moduleImport.args,
366
377
  data: data,
367
378
  dataID: RelayModernRecord.getDataID(record),
368
379
  operationReference: operationReference,
369
380
  path: (0, _toConsumableArray2["default"])(this._path),
370
381
  typeName: typeName,
371
- variables: this._variables
382
+ variables: this._variables,
383
+ actorIdentifier: this._actorIdentifier
372
384
  });
373
385
  }
374
386
  };
@@ -409,7 +421,11 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
409
421
 
410
422
  if (process.env.NODE_ENV !== "production") {
411
423
  if (selection.kind === SCALAR_FIELD) {
412
- this._validateConflictingFieldsWithIdenticalId(record, storageKey, fieldValue);
424
+ this._validateConflictingFieldsWithIdenticalId(record, storageKey, // When using `treatMissingFieldsAsNull` the conflicting validation raises a false positive
425
+ // because the value is set using `null` but validated using `fieldValue` which at this point
426
+ // will be `undefined`.
427
+ // Setting this to `null` matches the value that we actually set to the `fieldValue`.
428
+ null);
413
429
  }
414
430
  }
415
431
 
@@ -439,6 +455,64 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
439
455
  }
440
456
  };
441
457
 
458
+ _proto._normalizeActorChange = function _normalizeActorChange(parent, selection, record, data) {
459
+ var _field$concreteType;
460
+
461
+ var field = selection.linkedField;
462
+ !(typeof data === 'object' && data) ? process.env.NODE_ENV !== "production" ? invariant(false, '_normalizeActorChange(): Expected data for field `%s` to be an object.', field.name) : invariant(false) : void 0;
463
+ var responseKey = field.alias || field.name;
464
+ var storageKey = getStorageKey(field, this._variables);
465
+ var fieldValue = data[responseKey];
466
+
467
+ if (fieldValue == null) {
468
+ if (fieldValue === undefined) {
469
+ var isOptionalField = this._isClientExtension || this._isUnmatchedAbstractType;
470
+
471
+ if (isOptionalField) {
472
+ return;
473
+ } else if (!this._treatMissingFieldsAsNull) {
474
+ if (process.env.NODE_ENV !== "production") {
475
+ process.env.NODE_ENV !== "production" ? warning(false, 'RelayResponseNormalizer: Payload did not contain a value ' + 'for field `%s: %s`. Check that you are parsing with the same ' + 'query that was used to fetch the payload.', responseKey, storageKey) : void 0;
476
+ }
477
+
478
+ return;
479
+ }
480
+ }
481
+
482
+ RelayModernRecord.setValue(record, storageKey, null);
483
+ return;
484
+ }
485
+
486
+ var actorIdentifier = getActorIdentifierFromPayload(fieldValue);
487
+
488
+ if (actorIdentifier == null) {
489
+ if (process.env.NODE_ENV !== "production") {
490
+ process.env.NODE_ENV !== "production" ? warning(false, 'RelayResponseNormalizer: Payload did not contain a value ' + 'for field `%s`. Check that you are parsing with the same ' + 'query that was used to fetch the payload. Payload is `%s`.', ACTOR_IDENTIFIER_FIELD_NAME, JSON.stringify(fieldValue, null, 2)) : void 0;
491
+ }
492
+
493
+ RelayModernRecord.setValue(record, storageKey, null);
494
+ return;
495
+ } // $FlowFixMe[incompatible-call]
496
+
497
+
498
+ var typeName = (_field$concreteType = field.concreteType) !== null && _field$concreteType !== void 0 ? _field$concreteType : this._getRecordType(fieldValue);
499
+ var nextID = this._getDataId( // $FlowFixMe[incompatible-call]
500
+ fieldValue, typeName) || RelayModernRecord.getLinkedRecordID(record, storageKey) || generateClientID(RelayModernRecord.getDataID(record), storageKey);
501
+ !(typeof nextID === 'string') ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayResponseNormalizer: Expected id on field `%s` to be a string.', storageKey) : invariant(false) : void 0;
502
+ RelayModernRecord.setActorLinkedRecordID(record, storageKey, actorIdentifier, nextID);
503
+
504
+ this._followupPayloads.push({
505
+ kind: 'ActorPayload',
506
+ data: fieldValue,
507
+ dataID: nextID,
508
+ path: [].concat((0, _toConsumableArray2["default"])(this._path), [responseKey]),
509
+ typeName: typeName,
510
+ variables: this._variables,
511
+ node: field,
512
+ actorIdentifier: actorIdentifier
513
+ });
514
+ };
515
+
442
516
  _proto._normalizeFlightField = function _normalizeFlightField(parent, selection, record, data) {
443
517
  var responseKey = selection.alias || selection.name;
444
518
  var storageKey = getStorageKey(selection, this._variables);
@@ -457,14 +531,10 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
457
531
  // Field not expected to exist regardless of whether the server is pruning null
458
532
  // fields or not.
459
533
  return;
460
- } else if (!this._treatMissingFieldsAsNull) {
534
+ } else {
461
535
  // Not optional and the server is not pruning null fields: field is expected
462
536
  // to be present
463
- if (process.env.NODE_ENV !== "production") {
464
- process.env.NODE_ENV !== "production" ? warning(false, 'RelayResponseNormalizer: Payload did not contain a value ' + 'for field `%s: %s`. Check that you are parsing with the same ' + 'query that was used to fetch the payload.', responseKey, storageKey) : void 0;
465
- }
466
-
467
- return;
537
+ !this._treatMissingFieldsAsNull ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayResponseNormalizer: Payload did not contain a value for ' + 'field `%s: %s`. Check that you are parsing with the same ' + 'query that was used to fetch the payload.', responseKey, storageKey) : invariant(false) : void 0;
468
538
  }
469
539
  }
470
540
 
@@ -525,13 +595,16 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
525
595
  var query = _step.value;
526
596
 
527
597
  if (query.response.data != null) {
528
- this._moduleImportPayloads.push({
598
+ this._followupPayloads.push({
599
+ kind: 'ModuleImportPayload',
600
+ args: null,
529
601
  data: query.response.data,
530
602
  dataID: ROOT_ID,
531
603
  operationReference: query.module,
532
604
  path: [],
533
605
  typeName: ROOT_TYPE,
534
- variables: query.variables
606
+ variables: query.variables,
607
+ actorIdentifier: this._actorIdentifier
535
608
  });
536
609
  }
537
610
 
@@ -554,13 +627,16 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
554
627
  var fragment = _step2.value;
555
628
 
556
629
  if (fragment.response.data != null) {
557
- this._moduleImportPayloads.push({
630
+ this._followupPayloads.push({
631
+ kind: 'ModuleImportPayload',
632
+ args: null,
558
633
  data: fragment.response.data,
559
634
  dataID: fragment.__id,
560
635
  operationReference: fragment.module,
561
636
  path: [],
562
637
  typeName: fragment.__typename,
563
- variables: fragment.variables
638
+ variables: fragment.variables,
639
+ actorIdentifier: this._actorIdentifier
564
640
  });
565
641
  }
566
642
 
@@ -580,12 +656,12 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
580
656
  };
581
657
 
582
658
  _proto._normalizeLink = function _normalizeLink(field, record, storageKey, fieldValue) {
583
- var _field$concreteType;
659
+ var _field$concreteType2;
584
660
 
585
661
  !(typeof fieldValue === 'object' && fieldValue) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayResponseNormalizer: Expected data for field `%s` to be an object.', storageKey) : invariant(false) : void 0;
586
662
  var nextID = this._getDataId( // $FlowFixMe[incompatible-variance]
587
663
  fieldValue, // $FlowFixMe[incompatible-variance]
588
- (_field$concreteType = field.concreteType) !== null && _field$concreteType !== void 0 ? _field$concreteType : this._getRecordType(fieldValue)) || // Reuse previously generated client IDs
664
+ (_field$concreteType2 = field.concreteType) !== null && _field$concreteType2 !== void 0 ? _field$concreteType2 : this._getRecordType(fieldValue)) || // Reuse previously generated client IDs
589
665
  RelayModernRecord.getLinkedRecordID(record, storageKey) || generateClientID(RelayModernRecord.getDataID(record), storageKey);
590
666
  !(typeof nextID === 'string') ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayResponseNormalizer: Expected id on field `%s` to be a string.', storageKey) : invariant(false) : void 0;
591
667
 
@@ -619,7 +695,7 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
619
695
  var prevIDs = RelayModernRecord.getLinkedRecordIDs(record, storageKey);
620
696
  var nextIDs = [];
621
697
  fieldValue.forEach(function (item, nextIndex) {
622
- var _field$concreteType2;
698
+ var _field$concreteType3;
623
699
 
624
700
  // validate response data
625
701
  if (item == null) {
@@ -632,7 +708,7 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
632
708
  !(typeof item === 'object') ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayResponseNormalizer: Expected elements for field `%s` to be ' + 'objects.', storageKey) : invariant(false) : void 0;
633
709
  var nextID = _this._getDataId( // $FlowFixMe[incompatible-variance]
634
710
  item, // $FlowFixMe[incompatible-variance]
635
- (_field$concreteType2 = field.concreteType) !== null && _field$concreteType2 !== void 0 ? _field$concreteType2 : _this._getRecordType(item)) || prevIDs && prevIDs[nextIndex] || // Reuse previously generated client IDs:
711
+ (_field$concreteType3 = field.concreteType) !== null && _field$concreteType3 !== void 0 ? _field$concreteType3 : _this._getRecordType(item)) || prevIDs && prevIDs[nextIndex] || // Reuse previously generated client IDs:
636
712
  generateClientID(RelayModernRecord.getDataID(record), storageKey, nextIndex);
637
713
  !(typeof nextID === 'string') ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayResponseNormalizer: Expected id of elements of field `%s` to ' + 'be strings.', storageKey) : invariant(false) : void 0;
638
714
  nextIDs.push(nextID);
@@ -671,9 +747,9 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
671
747
  ;
672
748
 
673
749
  _proto._validateRecordType = function _validateRecordType(record, field, payload) {
674
- var _field$concreteType3;
750
+ var _field$concreteType4;
675
751
 
676
- var typeName = (_field$concreteType3 = field.concreteType) !== null && _field$concreteType3 !== void 0 ? _field$concreteType3 : this._getRecordType(payload);
752
+ var typeName = (_field$concreteType4 = field.concreteType) !== null && _field$concreteType4 !== void 0 ? _field$concreteType4 : this._getRecordType(payload);
677
753
  var dataID = RelayModernRecord.getDataID(record);
678
754
  process.env.NODE_ENV !== "production" ? warning(isClientID(dataID) && dataID !== ROOT_ID || RelayModernRecord.getType(record) === typeName, 'RelayResponseNormalizer: Invalid record `%s`. Expected %s to be ' + 'consistent, but the record was assigned conflicting types `%s` ' + 'and `%s`. The GraphQL server likely violated the globally unique ' + 'id requirement by returning the same id for different objects.', dataID, TYPENAME_KEY, RelayModernRecord.getType(record), typeName) : void 0;
679
755
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -10,13 +10,13 @@
10
10
  // flowlint ambiguous-object-type:error
11
11
  'use strict';
12
12
 
13
- var invariant = require('invariant');
14
-
15
13
  var _require = require('./RelayModernRecord'),
16
14
  getType = _require.getType;
17
15
 
18
- // Reachable (client) executable definitions encountered while server component
16
+ var invariant = require('invariant'); // Reachable (client) executable definitions encountered while server component
19
17
  // rendering
18
+
19
+
20
20
  var REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY = 'executableDefinitions';
21
21
  var REACT_FLIGHT_TREE_STORAGE_KEY = 'tree';
22
22
  var REACT_FLIGHT_TYPE_NAME = 'ReactFlightComponent';
@@ -31,13 +31,7 @@ function refineToReactFlightPayloadData(payload) {
31
31
 
32
32
  function getReactFlightClientResponse(record) {
33
33
  !(getType(record) === REACT_FLIGHT_TYPE_NAME) ? process.env.NODE_ENV !== "production" ? invariant(false, 'getReactFlightClientResponse(): Expected a ReactFlightComponentRecord, ' + 'got %s.', record) : invariant(false) : void 0;
34
- var response = record[REACT_FLIGHT_TREE_STORAGE_KEY];
35
-
36
- if (response != null) {
37
- return response;
38
- }
39
-
40
- return null;
34
+ return record[REACT_FLIGHT_TREE_STORAGE_KEY];
41
35
  }
42
36
 
43
37
  module.exports = {