react-relay 2.0.0-rc.2 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (166) hide show
  1. package/index.js +2 -2
  2. package/lib/ReactRelayContext.js +6 -3
  3. package/lib/ReactRelayFragmentContainer.js +48 -46
  4. package/lib/ReactRelayFragmentMockRenderer.js +5 -1
  5. package/lib/ReactRelayPaginationContainer.js +102 -68
  6. package/lib/ReactRelayQueryFetcher.js +54 -28
  7. package/lib/ReactRelayQueryRenderer.js +28 -20
  8. package/lib/ReactRelayRefetchContainer.js +70 -58
  9. package/lib/ReactRelayTestMocker.js +56 -43
  10. package/lib/ReactRelayTypes.js +1 -1
  11. package/lib/RelayContext.js +8 -2
  12. package/lib/assertFragmentMap.js +9 -7
  13. package/lib/buildReactRelayContainer.js +32 -23
  14. package/lib/index.js +41 -0
  15. package/lib/isRelayEnvironment.js +1 -1
  16. package/lib/isRelayVariables.js +1 -1
  17. package/lib/readContext.js +7 -4
  18. package/package.json +4 -4
  19. package/react-relay.js +2 -2
  20. package/react-relay.min.js +2 -2
  21. package/classic.js +0 -10
  22. package/compat.js +0 -10
  23. package/lib/ConcreteQuery.js +0 -10
  24. package/lib/GraphQLQueryRunner.js +0 -264
  25. package/lib/GraphQLRange.js +0 -1124
  26. package/lib/GraphQLSegment.js +0 -743
  27. package/lib/GraphQLStoreChangeEmitter.js +0 -141
  28. package/lib/GraphQLStoreQueryResolver.js +0 -288
  29. package/lib/GraphQLStoreRangeUtils.js +0 -126
  30. package/lib/QueryBuilder.js +0 -228
  31. package/lib/ReactRelayClassicExports.js +0 -29
  32. package/lib/ReactRelayCompatContainerBuilder.js +0 -175
  33. package/lib/ReactRelayCompatPublic.js +0 -28
  34. package/lib/ReactRelayContainerProfiler.js +0 -30
  35. package/lib/ReactRelayFragmentContainer-flowtest.js +0 -201
  36. package/lib/ReactRelayPaginationContainer-flowtest.js +0 -213
  37. package/lib/ReactRelayPublic.js +0 -29
  38. package/lib/ReactRelayRefetchContainer-flowtest.js +0 -191
  39. package/lib/RelayCacheProcessor.js +0 -196
  40. package/lib/RelayChangeTracker.js +0 -83
  41. package/lib/RelayClassicContainerUtils.js +0 -49
  42. package/lib/RelayClassicCore.js +0 -34
  43. package/lib/RelayClassicRecordState.js +0 -31
  44. package/lib/RelayCompatContainer.js +0 -25
  45. package/lib/RelayCompatEnvironment.js +0 -27
  46. package/lib/RelayCompatMutations.js +0 -133
  47. package/lib/RelayCompatPaginationContainer.js +0 -27
  48. package/lib/RelayCompatRefetchContainer.js +0 -27
  49. package/lib/RelayCompatTypes.js +0 -10
  50. package/lib/RelayContainer.js +0 -889
  51. package/lib/RelayContainerComparators.js +0 -75
  52. package/lib/RelayContainerProxy.js +0 -21
  53. package/lib/RelayDefaultNetworkLayer.js +0 -192
  54. package/lib/RelayEnvironment.js +0 -449
  55. package/lib/RelayEnvironmentTypes.js +0 -10
  56. package/lib/RelayFetchMode.js +0 -17
  57. package/lib/RelayFragmentPointer.js +0 -161
  58. package/lib/RelayFragmentReference.js +0 -249
  59. package/lib/RelayFragmentSpecResolver.js +0 -305
  60. package/lib/RelayGraphQLMutation.js +0 -288
  61. package/lib/RelayGraphQLTag.js +0 -42
  62. package/lib/RelayInternalTypes.js +0 -15
  63. package/lib/RelayInternals.js +0 -24
  64. package/lib/RelayMetaRoute.js +0 -35
  65. package/lib/RelayMockRenderer.js +0 -71
  66. package/lib/RelayModern-flowtest.js +0 -342
  67. package/lib/RelayModernFlowtest_badref.graphql.js +0 -10
  68. package/lib/RelayModernFlowtest_notref.graphql.js +0 -10
  69. package/lib/RelayModernFlowtest_user.graphql.js +0 -10
  70. package/lib/RelayModernFlowtest_users.graphql.js +0 -10
  71. package/lib/RelayMutation.js +0 -322
  72. package/lib/RelayMutationDebugPrinter.js +0 -47
  73. package/lib/RelayMutationQuery.js +0 -558
  74. package/lib/RelayMutationQueue.js +0 -530
  75. package/lib/RelayMutationRequest.js +0 -103
  76. package/lib/RelayMutationTracker.js +0 -113
  77. package/lib/RelayMutationTransaction.js +0 -92
  78. package/lib/RelayMutationTransactionStatus.js +0 -55
  79. package/lib/RelayNetworkDebug.js +0 -131
  80. package/lib/RelayNetworkLayer.js +0 -185
  81. package/lib/RelayNodeInterface.js +0 -104
  82. package/lib/RelayOperationDescriptor.js +0 -40
  83. package/lib/RelayOptimisticMutationUtils.js +0 -208
  84. package/lib/RelayPendingQueryTracker.js +0 -166
  85. package/lib/RelayPropTypes.js +0 -57
  86. package/lib/RelayPublic.js +0 -44
  87. package/lib/RelayQL.js +0 -128
  88. package/lib/RelayQuery.js +0 -1584
  89. package/lib/RelayQueryCaching.js +0 -33
  90. package/lib/RelayQueryConfig.js +0 -58
  91. package/lib/RelayQueryPath.js +0 -204
  92. package/lib/RelayQueryRequest.js +0 -103
  93. package/lib/RelayQueryTracker.js +0 -86
  94. package/lib/RelayQueryTransform.js +0 -91
  95. package/lib/RelayQueryVisitor.js +0 -93
  96. package/lib/RelayQueryWriter.js +0 -573
  97. package/lib/RelayReadyState.js +0 -83
  98. package/lib/RelayReadyStateRenderer.js +0 -145
  99. package/lib/RelayRecord.js +0 -75
  100. package/lib/RelayRecordStatusMap.js +0 -57
  101. package/lib/RelayRecordStore.js +0 -433
  102. package/lib/RelayRecordWriter.js +0 -601
  103. package/lib/RelayRefQueryDescriptor.js +0 -27
  104. package/lib/RelayRenderer.js +0 -268
  105. package/lib/RelayRootContainer.js +0 -125
  106. package/lib/RelayRoute.js +0 -92
  107. package/lib/RelayRouteFragment.js +0 -44
  108. package/lib/RelaySelector.js +0 -201
  109. package/lib/RelayShallowMock.js +0 -69
  110. package/lib/RelayStaticContainer.js +0 -38
  111. package/lib/RelayStore.js +0 -12
  112. package/lib/RelayStoreConstants.js +0 -20
  113. package/lib/RelayStoreData.js +0 -660
  114. package/lib/RelayTaskQueue.js +0 -189
  115. package/lib/RelayTypes.js +0 -13
  116. package/lib/RelayVariable.js +0 -32
  117. package/lib/RelayVariables.js +0 -92
  118. package/lib/buildRQL.js +0 -160
  119. package/lib/callsFromGraphQL.js +0 -74
  120. package/lib/callsToGraphQL.js +0 -34
  121. package/lib/checkRelayQueryData.js +0 -250
  122. package/lib/createRelayQuery.js +0 -17
  123. package/lib/dedent.js +0 -49
  124. package/lib/diffRelayQuery.js +0 -757
  125. package/lib/directivesToGraphQL.js +0 -39
  126. package/lib/filterRelayQuery.js +0 -29
  127. package/lib/findRelayQueryLeaves.js +0 -293
  128. package/lib/flattenRelayQuery.js +0 -121
  129. package/lib/flattenSplitRelayQueries.js +0 -44
  130. package/lib/forEachRootCallArg.js +0 -40
  131. package/lib/fromGraphQL.js +0 -48
  132. package/lib/generateClientEdgeID.js +0 -22
  133. package/lib/generateClientID.js +0 -27
  134. package/lib/generateConcreteFragmentID.js +0 -30
  135. package/lib/generateForceIndex.js +0 -24
  136. package/lib/generateRQLFieldAlias.js +0 -39
  137. package/lib/getRangeBehavior.js +0 -58
  138. package/lib/getRelayQueries.js +0 -83
  139. package/lib/intersectRelayQuery.js +0 -149
  140. package/lib/isClassicRelayContext.js +0 -20
  141. package/lib/isClassicRelayEnvironment.js +0 -20
  142. package/lib/isCompatibleRelayFragmentType.js +0 -27
  143. package/lib/isRelayContainer.js +0 -16
  144. package/lib/makeLegacyStringishComponentRef.js +0 -52
  145. package/lib/printRelayOSSQuery.js +0 -329
  146. package/lib/printRelayQuery.js +0 -26
  147. package/lib/rangeOperationToMetadataKey.js +0 -25
  148. package/lib/readRelayQueryData.js +0 -551
  149. package/lib/relayUnstableBatchedUpdates.js +0 -12
  150. package/lib/relayUnstableBatchedUpdates.native.js +0 -11
  151. package/lib/restoreRelayCacheData.js +0 -188
  152. package/lib/serializeRelayQueryCall.js +0 -42
  153. package/lib/splitDeferredRelayQueries.js +0 -298
  154. package/lib/stableStringify.js +0 -85
  155. package/lib/testEditDistance.js +0 -112
  156. package/lib/throwFailedPromise.js +0 -26
  157. package/lib/toGraphQL.js +0 -94
  158. package/lib/transformRelayQueryPayload.js +0 -145
  159. package/lib/validateMutationConfig.js +0 -117
  160. package/lib/validateRelayReadQuery.js +0 -112
  161. package/lib/writeRelayQueryPayload.js +0 -44
  162. package/lib/writeRelayUpdatePayload.js +0 -513
  163. package/react-relay-classic.js +0 -4
  164. package/react-relay-classic.min.js +0 -9
  165. package/react-relay-compat.js +0 -4
  166. package/react-relay-compat.min.js +0 -9
@@ -1,228 +0,0 @@
1
- /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- *
8
- * @format
9
- */
10
- 'use strict';
11
-
12
- var EMPTY_CALLS = [];
13
- var EMPTY_CHILDREN = [];
14
- var EMPTY_DIRECTIVES = [];
15
- var EMPTY_METADATA = {};
16
-
17
- if (process.env.NODE_ENV !== "production") {
18
- Object.freeze(EMPTY_CALLS);
19
- Object.freeze(EMPTY_CHILDREN);
20
- Object.freeze(EMPTY_DIRECTIVES);
21
- Object.freeze(EMPTY_METADATA);
22
- }
23
- /**
24
- * @internal
25
- *
26
- * Helper methods for constructing concrete query objects.
27
- */
28
-
29
-
30
- var QueryBuilder = {
31
- createBatchCallVariable: function createBatchCallVariable(sourceQueryID, jsonPath) {
32
- return {
33
- kind: 'BatchCallVariable',
34
- sourceQueryID: sourceQueryID,
35
- jsonPath: jsonPath
36
- };
37
- },
38
- createCall: function createCall(name, value, type) {
39
- return {
40
- kind: 'Call',
41
- name: name,
42
- metadata: {
43
- type: type || null
44
- },
45
- value: value
46
- };
47
- },
48
- createCallValue: function createCallValue(callValue) {
49
- return {
50
- kind: 'CallValue',
51
- callValue: callValue
52
- };
53
- },
54
- createCallVariable: function createCallVariable(callVariableName) {
55
- return {
56
- kind: 'CallVariable',
57
- callVariableName: callVariableName
58
- };
59
- },
60
- createDirective: function createDirective(name, args) {
61
- return {
62
- args: args,
63
- kind: 'Directive',
64
- name: name
65
- };
66
- },
67
- createDirectiveArgument: function createDirectiveArgument(name, value) {
68
- return {
69
- name: name,
70
- value: value
71
- };
72
- },
73
- createField: function createField(partialField) {
74
- var partialMetadata = partialField.metadata || EMPTY_METADATA;
75
- return {
76
- alias: partialField.alias,
77
- calls: partialField.calls || EMPTY_CALLS,
78
- children: partialField.children || EMPTY_CHILDREN,
79
- directives: partialField.directives || EMPTY_DIRECTIVES,
80
- fieldName: partialField.fieldName,
81
- kind: 'Field',
82
- metadata: {
83
- canHaveSubselections: !!partialMetadata.canHaveSubselections,
84
- inferredRootCallName: partialMetadata.inferredRootCallName,
85
- inferredPrimaryKey: partialMetadata.inferredPrimaryKey,
86
- isConnection: !!partialMetadata.isConnection,
87
- isFindable: !!partialMetadata.isFindable,
88
- isGenerated: !!partialMetadata.isGenerated,
89
- isPlural: !!partialMetadata.isPlural,
90
- isRequisite: !!partialMetadata.isRequisite,
91
- isAbstract: !!partialMetadata.isAbstract
92
- },
93
- type: partialField.type
94
- };
95
- },
96
- createFragment: function createFragment(partialFragment) {
97
- var metadata = partialFragment.metadata || EMPTY_METADATA;
98
- return {
99
- children: partialFragment.children || EMPTY_CHILDREN,
100
- directives: partialFragment.directives || EMPTY_DIRECTIVES,
101
- id: require("./generateConcreteFragmentID")(),
102
- kind: 'Fragment',
103
- metadata: {
104
- isAbstract: !!metadata.isAbstract,
105
- pattern: !!metadata.pattern,
106
- plural: !!metadata.plural // match the `@relay` argument name
107
-
108
- },
109
- name: partialFragment.name,
110
- type: partialFragment.type
111
- };
112
- },
113
- createMutation: function createMutation(partialMutation) {
114
- var metadata = partialMutation.metadata || EMPTY_METADATA;
115
- return {
116
- calls: partialMutation.calls || EMPTY_CALLS,
117
- children: partialMutation.children || EMPTY_CHILDREN,
118
- directives: partialMutation.directives || EMPTY_DIRECTIVES,
119
- kind: 'Mutation',
120
- metadata: {
121
- inputType: metadata.inputType
122
- },
123
- name: partialMutation.name,
124
- responseType: partialMutation.responseType
125
- };
126
- },
127
- createQuery: function createQuery(partialQuery) {
128
- var metadata = partialQuery.metadata || EMPTY_METADATA;
129
- var calls = [];
130
- var identifyingArgName = metadata.identifyingArgName;
131
-
132
- if (identifyingArgName == null && require("./RelayNodeInterface").isNodeRootCall(partialQuery.fieldName)) {
133
- identifyingArgName = require("./RelayNodeInterface").ID;
134
- }
135
-
136
- if (identifyingArgName != null) {
137
- process.env.NODE_ENV !== "production" ? require("fbjs/lib/warning")(partialQuery.identifyingArgValue != null, 'QueryBuilder.createQuery(): An argument value may be required for ' + 'query `%s(%s: ???)`.', partialQuery.fieldName, identifyingArgName) : void 0;
138
- calls = [QueryBuilder.createCall(identifyingArgName, partialQuery.identifyingArgValue, metadata.identifyingArgType)];
139
- }
140
-
141
- return {
142
- calls: calls,
143
- children: partialQuery.children || EMPTY_CHILDREN,
144
- directives: partialQuery.directives || EMPTY_DIRECTIVES,
145
- fieldName: partialQuery.fieldName,
146
- isDeferred: !!(partialQuery.isDeferred || metadata.isDeferred),
147
- kind: 'Query',
148
- metadata: {
149
- identifyingArgName: identifyingArgName,
150
- identifyingArgType: metadata.identifyingArgType,
151
- isAbstract: !!metadata.isAbstract,
152
- isPlural: !!metadata.isPlural
153
- },
154
- name: partialQuery.name,
155
- type: partialQuery.type
156
- };
157
- },
158
- createSubscription: function createSubscription(partialSubscription) {
159
- var metadata = partialSubscription.metadata || EMPTY_METADATA;
160
- return {
161
- calls: partialSubscription.calls || EMPTY_CALLS,
162
- children: partialSubscription.children || EMPTY_CHILDREN,
163
- directives: partialSubscription.directives || EMPTY_DIRECTIVES,
164
- kind: 'Subscription',
165
- metadata: {
166
- inputType: metadata.inputType
167
- },
168
- name: partialSubscription.name,
169
- responseType: partialSubscription.responseType
170
- };
171
- },
172
- getBatchCallVariable: function getBatchCallVariable(node) {
173
- if (isConcreteKind(node, 'BatchCallVariable')) {
174
- return node;
175
- }
176
- },
177
- getCallVariable: function getCallVariable(node) {
178
- if (isConcreteKind(node, 'CallVariable')) {
179
- return node;
180
- }
181
- },
182
- getField: function getField(node) {
183
- if (isConcreteKind(node, 'Field')) {
184
- return node;
185
- }
186
- },
187
- getFragment: function getFragment(node) {
188
- if (isConcreteKind(node, 'Fragment')) {
189
- return node;
190
- }
191
- },
192
- getFragmentDefinition: function getFragmentDefinition(node) {
193
- if (isConcreteKind(node, 'FragmentDefinition')) {
194
- return node;
195
- }
196
- },
197
- getFragmentSpread: function getFragmentSpread(node) {
198
- if (isConcreteKind(node, 'FragmentSpread')) {
199
- return node;
200
- }
201
- },
202
- getOperationDefinition: function getOperationDefinition(node) {
203
- if (isConcreteKind(node, 'OperationDefinition')) {
204
- return node;
205
- }
206
- },
207
- getMutation: function getMutation(node) {
208
- if (isConcreteKind(node, 'Mutation')) {
209
- return node;
210
- }
211
- },
212
- getQuery: function getQuery(node) {
213
- if (isConcreteKind(node, 'Query')) {
214
- return node;
215
- }
216
- },
217
- getSubscription: function getSubscription(node) {
218
- if (isConcreteKind(node, 'Subscription')) {
219
- return node;
220
- }
221
- }
222
- };
223
-
224
- function isConcreteKind(node, kind) {
225
- return typeof node === 'object' && node !== null && node.kind === kind;
226
- }
227
-
228
- module.exports = QueryBuilder;
@@ -1,29 +0,0 @@
1
- /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- * strict-local
8
- * @format
9
- */
10
- 'use strict';
11
-
12
- var _objectSpread2 = require("@babel/runtime/helpers/interopRequireDefault")(require("@babel/runtime/helpers/objectSpread"));
13
-
14
- // As early as possible, check for the existence of the JavaScript globals which
15
- // React Relay relies upon, and produce a clear message if they do not exist.
16
- if (process.env.NODE_ENV !== "production") {
17
- if (typeof Map !== 'function' || typeof Set !== 'function' || typeof Promise !== 'function' || typeof Object.assign !== 'function' || typeof Array.prototype.find !== 'function') {
18
- throw new Error('react-relay requires Map, Set, Promise, Object.assign, and Array#find ' + 'to exist. Use a polyfill to provide these for older browsers.');
19
- }
20
- } // By default, assume that GraphQL is served at `/graphql` on the same domain.
21
- // To override, use `Relay.injectNetworkLayer`.
22
-
23
-
24
- require("./RelayStore").injectDefaultNetworkLayer(new (require("./RelayDefaultNetworkLayer"))('/graphql'));
25
-
26
- module.exports = (0, _objectSpread2["default"])({}, require("./RelayPublic"), {
27
- // Expose the default network layer to allow convenient re-configuration.
28
- DefaultNetworkLayer: require("./RelayDefaultNetworkLayer")
29
- });
@@ -1,175 +0,0 @@
1
- /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- *
8
- * @format
9
- */
10
- 'use strict';
11
-
12
- var _extends2 = require("@babel/runtime/helpers/interopRequireDefault")(require("@babel/runtime/helpers/extends"));
13
-
14
- var _objectSpread2 = require("@babel/runtime/helpers/interopRequireDefault")(require("@babel/runtime/helpers/objectSpread"));
15
-
16
- /**
17
- * `injectDefaultVariablesProvider()` allows classic versions of a container to
18
- * inject default variable values for a fragment via the arguments of any
19
- * references to it. This is useful for fragments that need to reference
20
- * global query constants (e.g. the device pixel ratio) but may be included
21
- * in classic queries that do not define the necessary param.
22
- */
23
- var injectedDefaultVariablesProvider = null;
24
-
25
- function injectDefaultVariablesProvider(variablesProvider) {
26
- !!injectedDefaultVariablesProvider ? process.env.NODE_ENV !== "production" ? require("fbjs/lib/invariant")(false, 'injectDefaultVariablesProvider must be called no more than once.') : require("fbjs/lib/invariant")(false) : void 0;
27
- injectedDefaultVariablesProvider = variablesProvider;
28
- }
29
- /**
30
- * Sets a logging function that logs whether a compat container was rendered in
31
- * a modern or classic environment.
32
- */
33
-
34
-
35
- var injectedCompatLoggingFunction = function injectedCompatLoggingFunction() {};
36
-
37
- function injectCompatLoggingFunction(loggingFunction) {
38
- injectedCompatLoggingFunction = loggingFunction;
39
- }
40
- /**
41
- * Creates a component class whose instances adapt to the
42
- * `context.relay.environment` in which they are rendered and which have the
43
- * necessary static methods (`getFragment()` etc) to be composed within classic
44
- * `Relay.Containers`.
45
- *
46
- * The returned constructor uses the given `createContainerForEnvironment` to
47
- * construct a new container type whenever a new environment is encountered;
48
- * while the constructor is being used for the same environment (the expected
49
- * majority case) this value is memoized to avoid creating unnecessary extra
50
- * container definitions or unwrapping the environment-specific fragment
51
- * defintions unnecessarily.
52
- */
53
-
54
-
55
- function buildCompatContainer(ComponentClass, fragmentSpec, createContainerWithFragments) {
56
- var compatModuleName = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'unknown';
57
-
58
- // Sanity-check user-defined fragment input
59
- var containerName = require("./ReactRelayContainerUtils").getContainerName(ComponentClass);
60
-
61
- require("./assertFragmentMap")(require("./ReactRelayContainerUtils").getComponentName(ComponentClass), fragmentSpec);
62
-
63
- var injectedDefaultVariables = null;
64
-
65
- function getDefaultVariables() {
66
- if (injectedDefaultVariables == null) {
67
- injectedDefaultVariables = injectedDefaultVariablesProvider ? injectedDefaultVariablesProvider() : {};
68
- }
69
-
70
- return injectedDefaultVariables;
71
- } // Similar to RelayContainer.getFragment(), except that this returns a
72
- // FragmentSpread in order to support referencing root variables.
73
-
74
-
75
- function getFragment(fragmentName, variableMapping) {
76
- injectedCompatLoggingFunction(compatModuleName, false);
77
- var taggedNode = fragmentSpec[fragmentName];
78
- !taggedNode ? process.env.NODE_ENV !== "production" ? require("fbjs/lib/invariant")(false, 'ReactRelayCompatContainerBuilder: Expected a fragment named `%s` to be defined ' + 'on `%s`.', fragmentName, containerName) : require("fbjs/lib/invariant")(false) : void 0;
79
-
80
- var fragment = require("./RelayGraphQLTag").getClassicFragment(taggedNode);
81
-
82
- var args = (0, _objectSpread2["default"])({}, getDefaultVariables(), variableMapping || {});
83
- return {
84
- kind: 'FragmentSpread',
85
- args: args,
86
- fragment: fragment
87
- };
88
- }
89
-
90
- function hasVariable(variableName) {
91
- return Object.keys(fragmentSpec).some(function (fragmentName) {
92
- var fragment = require("./RelayGraphQLTag").getClassicFragment(fragmentSpec[fragmentName]);
93
-
94
- return fragment.argumentDefinitions.some(function (argDef) {
95
- return argDef.name === variableName;
96
- });
97
- });
98
- } // Memoize a container for the last environment instance encountered
99
-
100
-
101
- var environment;
102
- var Container;
103
-
104
- function ContainerConstructor(props) {
105
- if (Container == null || props.__relayContext.environment !== environment) {
106
- environment = props.__relayContext.environment;
107
- injectedCompatLoggingFunction(compatModuleName, require("relay-runtime").isRelayModernEnvironment(environment));
108
- var getFragmentFromTag = environment.unstable_internal.getFragment;
109
-
110
- var _fragments = require("fbjs/lib/mapObject")(fragmentSpec, getFragmentFromTag);
111
-
112
- Container = createContainerWithFragments(ComponentClass, _fragments); // Attach static lifecycle to wrapper component so React can see it.
113
-
114
- ContainerConstructor.getDerivedStateFromProps = Container.getDerivedStateFromProps;
115
- } // $FlowFixMe
116
-
117
-
118
- return new Container(props);
119
- }
120
-
121
- function forwardRef(props, ref) {
122
- var context = require("./readContext")(require("./ReactRelayContext"));
123
-
124
- !context ? process.env.NODE_ENV !== "production" ? require("fbjs/lib/invariant")(false, "".concat(containerName, " tried to render a context that was ") + "not valid this means that ".concat(containerName, " was rendered outside of a ") + 'query renderer.') : require("fbjs/lib/invariant")(false) : void 0;
125
- return require("react").createElement(ContainerConstructor, (0, _extends2["default"])({}, props, {
126
- __relayContext: context,
127
- componentRef: props.componentRef || ref
128
- }));
129
- }
130
-
131
- forwardRef.displayName = containerName;
132
-
133
- var ForwardContainer = require("react").forwardRef(forwardRef); // Classic container static methods
134
-
135
- /* $FlowFixMe(>=0.89.0 site=www,mobile,react_native_fb,oss) Suppressing errors
136
- * found while preparing to upgrade to 0.89.0 */
137
-
138
-
139
- ForwardContainer.getFragment = getFragment;
140
- /* $FlowFixMe(>=0.89.0 site=www,mobile,react_native_fb,oss) Suppressing errors
141
- * found while preparing to upgrade to 0.89.0 */
142
-
143
- ForwardContainer.getFragmentNames = function () {
144
- return Object.keys(fragmentSpec);
145
- };
146
- /* $FlowFixMe(>=0.89.0 site=www,mobile,react_native_fb,oss) Suppressing errors
147
- * found while preparing to upgrade to 0.89.0 */
148
-
149
-
150
- ForwardContainer.hasFragment = function (name) {
151
- return fragmentSpec.hasOwnProperty(name);
152
- };
153
- /* $FlowFixMe(>=0.89.0 site=www,mobile,react_native_fb,oss) Suppressing errors
154
- * found while preparing to upgrade to 0.89.0 */
155
-
156
-
157
- ForwardContainer.hasVariable = hasVariable;
158
-
159
- if (process.env.NODE_ENV !== "production") {
160
- /* $FlowFixMe(>=0.89.0 site=www,mobile,react_native_fb,oss) Suppressing
161
- * errors found while preparing to upgrade to 0.89.0 */
162
- ForwardContainer.__ComponentClass = ComponentClass;
163
- } // Create a back-reference from the Component to the Container for cases
164
- // where a Classic Component might refer to itself, expecting a Container.
165
-
166
-
167
- ComponentClass.__container__ = ForwardContainer;
168
- return ForwardContainer;
169
- }
170
-
171
- module.exports = {
172
- injectDefaultVariablesProvider: injectDefaultVariablesProvider,
173
- injectCompatLoggingFunction: injectCompatLoggingFunction,
174
- buildCompatContainer: buildCompatContainer
175
- };
@@ -1,28 +0,0 @@
1
- /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- * strict-local
8
- * @format
9
- */
10
- 'use strict';
11
-
12
- /**
13
- * The public interface to React Relay which supports a compatibility mode to
14
- * continue to work with the classic Relay runtime.
15
- */
16
- module.exports = {
17
- QueryRenderer: require("./ReactRelayQueryRenderer"),
18
- MutationTypes: require("relay-runtime").MutationTypes,
19
- RangeOperations: require("relay-runtime").RangeOperations,
20
- applyOptimisticMutation: require("./RelayCompatMutations").applyUpdate,
21
- commitMutation: require("./RelayCompatMutations").commitUpdate,
22
- createFragmentContainer: require("./RelayCompatContainer").createContainer,
23
- createPaginationContainer: require("./RelayCompatPaginationContainer").createContainer,
24
- createRefetchContainer: require("./RelayCompatRefetchContainer").createContainer,
25
- fetchQuery: require("relay-runtime").fetchQuery,
26
- graphql: require("relay-runtime").graphql,
27
- injectDefaultVariablesProvider: require("./ReactRelayCompatContainerBuilder").injectDefaultVariablesProvider
28
- };
@@ -1,30 +0,0 @@
1
- /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- * strict-local
8
- * @format
9
- */
10
- 'use strict';
11
-
12
- function profileContainer(Container, containerName) {
13
- require("relay-runtime").RelayProfiler.instrumentMethods(Container.prototype, {
14
- constructor: "".concat(containerName, ".prototype.constructor"),
15
- UNSAFE_componentWillReceiveProps: "".concat(containerName, ".prototype.UNSAFE_componentWillReceiveProps"),
16
- componentWillUnmount: "".concat(containerName, ".prototype.componentWillUnmount"),
17
- shouldComponentUpdate: "".concat(containerName, ".prototype.shouldComponentUpdate")
18
- }); // Copy static getDerivedStateFromProps() to the instrumented constructor.
19
- // This is necessary to support the react-lifecycle-compat poyfill.
20
- // This can be removed once react-relay requires React 16.3+.
21
-
22
-
23
- if (Container.prototype !== null && typeof Container.prototype === 'object' && typeof Container.getDerivedStateFromProps === 'function') {
24
- Container.prototype.constructor.getDerivedStateFromProps = Container.getDerivedStateFromProps;
25
- }
26
- }
27
-
28
- module.exports = {
29
- profileContainer: profileContainer
30
- };
@@ -1,201 +0,0 @@
1
- /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- * strict-local
8
- * @format
9
- */
10
- 'use strict';
11
-
12
- var _inheritsLoose2 = require("@babel/runtime/helpers/interopRequireDefault")(require("@babel/runtime/helpers/inheritsLoose"));
13
-
14
- var _defineProperty2 = require("@babel/runtime/helpers/interopRequireDefault")(require("@babel/runtime/helpers/defineProperty"));
15
-
16
- var _taggedTemplateLiteral2 = require("@babel/runtime/helpers/interopRequireDefault")(require("./taggedTemplateLiteral"));
17
-
18
- function _templateObject2() {
19
- var data = (0, _taggedTemplateLiteral2["default"])(["\n fragment ReactRelayFragmentContainerFlowtest_Bar_viewer on Viewer {\n actor {\n id\n }\n }\n "]);
20
-
21
- _templateObject2 = function _templateObject2() {
22
- return data;
23
- };
24
-
25
- return data;
26
- }
27
-
28
- function _templateObject() {
29
- var data = (0, _taggedTemplateLiteral2["default"])(["\n fragment ReactRelayFragmentContainerFlowtest_Foo_viewer on Viewer {\n actor {\n id\n }\n }\n "]);
30
-
31
- _templateObject = function _templateObject() {
32
- return data;
33
- };
34
-
35
- return data;
36
- }
37
-
38
- /**
39
- * Verifies that normal prop type checking, as well as the methods proxying Relay does, is
40
- * type-checked correctly on Relay components.
41
- */
42
- var FooComponent = function FooComponent(_ref) {
43
- var requiredProp = _ref.requiredProp;
44
- return require("react").createElement("div", null, requiredProp);
45
- }; // Note that we must reassign to a new identifier to make sure flow doesn't propogate types without
46
- // the relay type definition doing the work.
47
-
48
-
49
- var Foo = require("./ReactRelayPublic").createFragmentContainer(FooComponent, require("./ReactRelayPublic").graphql(_templateObject()));
50
-
51
- var BarComponent =
52
- /*#__PURE__*/
53
- function (_React$Component) {
54
- (0, _inheritsLoose2["default"])(BarComponent, _React$Component);
55
-
56
- function BarComponent() {
57
- return _React$Component.apply(this, arguments) || this;
58
- }
59
-
60
- var _proto = BarComponent.prototype;
61
-
62
- _proto.getNum = function getNum() {
63
- return 42;
64
- };
65
-
66
- _proto.render = function render() {
67
- var reqLen = this.props.requiredProp.length;
68
- var optionalProp = this.props.optionalProp;
69
- /** $FlowExpectedError: `optionalProp` might be null **/
70
-
71
- var optionalFoo = this.props.optionalProp.foo;
72
- /** $FlowExpectedError: there is no prop `missingProp` **/
73
-
74
- var missing = this.props.missingProp;
75
- var defLen = this.props.defaultProp.length; // always a valid string, so no error
76
-
77
- return require("react").createElement("div", null, reqLen && optionalProp && optionalFoo && missing && defLen);
78
- };
79
-
80
- return BarComponent;
81
- }(require("react").Component);
82
-
83
- (0, _defineProperty2["default"])(BarComponent, "defaultProps", {
84
- defaultProp: 'default'
85
- });
86
-
87
- var Bar = require("./ReactRelayPublic").createFragmentContainer(BarComponent, require("./ReactRelayPublic").graphql(_templateObject2()));
88
-
89
- module.exports = {
90
- checkMissingPropOnFunctionalComponent: function checkMissingPropOnFunctionalComponent() {
91
- /** $FlowExpectedError: Foo missing `requiredProp` **/
92
- return require("react").createElement(Foo, null);
93
- },
94
- checkMinimalPropsOnFunctionalComponent: function checkMinimalPropsOnFunctionalComponent() {
95
- // Fine, no expected errors
96
- return require("react").createElement(Foo, {
97
- requiredProp: "foo"
98
- });
99
- },
100
- checkMissingPropOnClassComponent: function checkMissingPropOnClassComponent() {
101
- /** $FlowExpectedError: Bar missing `requiredProp` **/
102
- return require("react").createElement(Bar, null);
103
- },
104
- checkMinimalPropsOnClassComponent: function checkMinimalPropsOnClassComponent() {
105
- // All is well
106
- return require("react").createElement(Bar, {
107
- requiredProp: "foo"
108
- });
109
- },
110
- checkWrongPropType: function checkWrongPropType() {
111
- /** $FlowExpectedError: Bar wrong `requiredProp` type, should be string **/
112
- return require("react").createElement(Bar, {
113
- requiredProp: 17
114
- });
115
- },
116
- checkWrongOptionalType: function checkWrongOptionalType() {
117
- /** $FlowExpectedError: Bar wrong `optionalProp` type, should be `{foo: string}` **/
118
- return require("react").createElement(Bar, {
119
- optionalProp: "wrongType",
120
- requiredProp: "foo"
121
- });
122
- },
123
- checkNullOptionalType: function checkNullOptionalType() {
124
- /** $FlowExpectedError: Bar `optionalProp` must be omitted or truthy, not null **/
125
- return require("react").createElement(Bar, {
126
- optionalProp: null,
127
- requiredProp: "foo"
128
- });
129
- },
130
- checkWrongDefaultPropType: function checkWrongDefaultPropType() {
131
- /** $FlowExpectedError: Bar wrong `defaultProp` type, should be string **/
132
- return require("react").createElement(Bar, {
133
- defaultProp: false,
134
- requiredProp: "foo"
135
- });
136
- },
137
- checkAllPossibleProps: function checkAllPossibleProps() {
138
- // All is well
139
- return require("react").createElement(Bar, {
140
- defaultProp: "bar",
141
- optionalProp: {
142
- foo: 42
143
- },
144
- requiredProp: "foo"
145
- });
146
- },
147
- checkMinimalPropSpread: function checkMinimalPropSpread() {
148
- // All is well
149
- var props = {
150
- requiredProp: 'foo'
151
- };
152
- return require("react").createElement(Bar, props);
153
- },
154
- checkMissingPropSpread: function checkMissingPropSpread() {
155
- var props = {
156
- defaultProp: 'foo'
157
- };
158
- /** $FlowExpectedError: Bar missing `requiredProp` with spread **/
159
-
160
- return require("react").createElement(Bar, props);
161
- },
162
- checkStaticsAndMethodsProxying: function checkStaticsAndMethodsProxying() {
163
- var ProxyChecker =
164
- /*#__PURE__*/
165
- function (_React$PureComponent) {
166
- (0, _inheritsLoose2["default"])(ProxyChecker, _React$PureComponent);
167
-
168
- function ProxyChecker() {
169
- return _React$PureComponent.apply(this, arguments) || this;
170
- }
171
-
172
- var _proto2 = ProxyChecker.prototype;
173
-
174
- _proto2.getString = function getString() {
175
- var ok = this._barRef ? this._barRef.getNum() : 'default'; // legit
176
-
177
- /** $FlowExpectedError: Bar does not have `missingMethod` **/
178
-
179
- var bad = this._barRef ? this._barRef.missingMethod() : 'default';
180
- /** $FlowExpectedError: Bar `getNum` gives number, but `getString` assumes string **/
181
-
182
- return bad ? 'not good' : ok;
183
- };
184
-
185
- _proto2.render = function render() {
186
- var _this = this;
187
-
188
- return require("react").createElement(Bar, {
189
- componentRef: function componentRef(ref) {
190
- _this._barRef = ref;
191
- },
192
- requiredProp: "bar"
193
- });
194
- };
195
-
196
- return ProxyChecker;
197
- }(require("react").PureComponent);
198
-
199
- return require("react").createElement(ProxyChecker, null);
200
- }
201
- };