react-relay 20.1.1 → 21.0.1
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/ReactRelayContext.js +1 -1
- package/ReactRelayContext.js.flow +2 -2
- package/ReactRelayFragmentContainer.js.flow +8 -9
- package/ReactRelayLocalQueryRenderer.js.flow +11 -3
- package/ReactRelayLoggingContext.js.flow +3 -3
- package/ReactRelayPaginationContainer.js.flow +32 -25
- package/ReactRelayQueryFetcher.js.flow +1 -1
- package/ReactRelayQueryRenderer.js.flow +2 -2
- package/ReactRelayQueryRendererContext.js.flow +2 -2
- package/ReactRelayRefetchContainer.js.flow +17 -14
- package/ReactRelayTestMocker.js.flow +10 -10
- package/ReactRelayTypes.d.ts +377 -0
- package/ReactRelayTypes.js.flow +47 -43
- package/RelayContext.js.flow +3 -3
- package/__flowtests__/ReactRelayFragmentContainer-flowtest.js.flow +11 -11
- package/__flowtests__/ReactRelayPaginationContainer-flowtest.js.flow +5 -5
- package/__flowtests__/ReactRelayRefetchContainer-flowtest.js.flow +5 -5
- package/__flowtests__/RelayModern-flowtest.js.flow +32 -32
- package/__flowtests__/RelayModernFlowtest_users.graphql.js.flow +1 -1
- package/__flowtests__/__generated__/ReactRelayFragmentContainerFlowtest_viewer.graphql.js.flow +3 -4
- package/__flowtests__/__generated__/ReactRelayFragmentContainerFlowtest_viewer2.graphql.js.flow +3 -4
- package/__flowtests__/__generated__/ReactRelayPaginationContainerFlowtestQuery.graphql.js.flow +9 -10
- package/__flowtests__/__generated__/ReactRelayPaginationContainerFlowtest_viewer.graphql.js.flow +4 -5
- package/__flowtests__/__generated__/ReactRelayRefetchContainerFlowtestQuery.graphql.js.flow +9 -10
- package/__flowtests__/__generated__/ReactRelayRefetchContainerFlowtest_viewer.graphql.js.flow +4 -5
- package/__flowtests__/__generated__/RelayModernFlowtest_badref.graphql.js.flow +3 -4
- package/__flowtests__/__generated__/RelayModernFlowtest_notref.graphql.js.flow +3 -4
- package/__flowtests__/__generated__/RelayModernFlowtest_user.graphql.js.flow +3 -4
- package/__flowtests__/__generated__/RelayModernFlowtest_users.graphql.js.flow +5 -6
- package/buildReactRelayContainer.js.flow +5 -5
- package/getRootVariablesForFragments.js.flow +1 -1
- package/hooks.d.ts +89 -0
- package/hooks.js +1 -1
- package/hooks.js.flow +23 -8
- package/index.d.ts +9 -0
- package/index.js +1 -1
- package/index.js.flow +40 -14
- package/isRelayEnvironment.js.flow +1 -1
- package/jest-react/internalAct.js.flow +1 -1
- package/legacy.d.ts +143 -0
- package/legacy.js +1 -1
- package/legacy.js.flow +32 -13
- package/lib/ReactRelayFragmentContainer.js +1 -1
- package/lib/ReactRelayPaginationContainer.js +8 -8
- package/lib/ReactRelayRefetchContainer.js +8 -8
- package/lib/ReactRelayTestMocker.js +5 -5
- package/lib/hooks.js +18 -8
- package/lib/index.js +30 -14
- package/lib/legacy.js +26 -13
- package/lib/relay-hooks/legacy/useBlockingPaginationFragment.js +5 -5
- package/lib/relay-hooks/legacy/useRefetchableFragmentNode.js +34 -34
- package/lib/relay-hooks/loadEntryPoint.js +2 -2
- package/lib/relay-hooks/loadQuery.js +14 -14
- package/lib/relay-hooks/preloadQuery_DEPRECATED.js +10 -10
- package/lib/relay-hooks/readFragmentInternal.js +6 -6
- package/lib/relay-hooks/rsc/serverFetchQuery.js +20 -0
- package/lib/relay-hooks/rsc/serverPreloadQuery.js +31 -0
- package/lib/relay-hooks/rsc/serverReadFragment.js +15 -0
- package/lib/relay-hooks/rsc/useQueryFromServer.js +62 -0
- package/lib/relay-hooks/useFragmentInternal_CURRENT.js +49 -25
- package/lib/relay-hooks/useFragmentInternal_EXPERIMENTAL.js +81 -44
- package/lib/relay-hooks/useLazyLoadQueryNode.js +32 -19
- package/lib/relay-hooks/useMutation.js +6 -14
- package/lib/relay-hooks/useMutationAction_EXPERIMENTAL.js +26 -0
- package/lib/relay-hooks/usePreloadedQuery.js +52 -47
- package/lib/relay-hooks/useQueryLoader.js +2 -2
- package/lib/relay-hooks/useQueryLoader_EXPERIMENTAL.js +2 -2
- package/lib/relay-hooks/useRefetchableFragmentInternal.js +31 -31
- package/lib/rsc-client_EXPERIMENTAL.js +7 -0
- package/lib/rsc_EXPERIMENTAL.js +43 -0
- package/multi-actor/ActorChange.js.flow +1 -1
- package/package.json +3 -2
- package/relay-hooks/EntryPointContainer.react.d.ts +22 -0
- package/relay-hooks/EntryPointContainer.react.js.flow +6 -6
- package/relay-hooks/EntryPointTypes.flow.js.flow +106 -108
- package/relay-hooks/LazyLoadEntryPointContainer_DEPRECATED.react.js.flow +23 -21
- package/relay-hooks/MatchContainer.d.ts +95 -0
- package/relay-hooks/MatchContainer.js.flow +17 -11
- package/relay-hooks/NestedRelayEntryPointBuilderUtils.js.flow +3 -9
- package/relay-hooks/ProfilerContext.d.ts +18 -0
- package/relay-hooks/QueryResource.js.flow +9 -9
- package/relay-hooks/RelayEnvironmentProvider.d.ts +16 -0
- package/relay-hooks/RelayEnvironmentProvider.js.flow +2 -2
- package/relay-hooks/__flowtests__/EntryPointTypes/EntryPointElementConfig-flowtest.js.flow +6 -6
- package/relay-hooks/__flowtests__/EntryPointTypes/ExtractQueryTypes-flowtest.js.flow +50 -3
- package/relay-hooks/__flowtests__/EntryPointTypes/NestedEntrypoints-flowtest.js.flow +9 -9
- package/relay-hooks/__flowtests__/__generated__/useFragmentFlowtest_user.graphql.js.flow +3 -4
- package/relay-hooks/__flowtests__/__generated__/useFragmentFlowtest_users.graphql.js.flow +5 -6
- package/relay-hooks/__flowtests__/useBlockingPaginationFragment-flowtest.js.flow +27 -32
- package/relay-hooks/__flowtests__/useFragment-flowtest.js.flow +25 -25
- package/relay-hooks/__flowtests__/usePaginationFragment-flowtest.js.flow +26 -32
- package/relay-hooks/__flowtests__/useRefetchableFragment-flowtest.js.flow +23 -30
- package/relay-hooks/__flowtests__/utils.js.flow +17 -17
- package/relay-hooks/getConnectionState.js.flow +2 -2
- package/relay-hooks/legacy/FragmentResource.js.flow +13 -13
- package/relay-hooks/legacy/useBlockingPaginationFragment.js.flow +28 -25
- package/relay-hooks/legacy/useFragmentNode.js.flow +4 -4
- package/relay-hooks/legacy/useRefetchableFragmentNode.js.flow +79 -81
- package/relay-hooks/loadEntryPoint.d.ts +14 -0
- package/relay-hooks/loadEntryPoint.js.flow +15 -13
- package/relay-hooks/loadQuery.d.ts +20 -0
- package/relay-hooks/loadQuery.js.flow +19 -19
- package/relay-hooks/preloadQuery_DEPRECATED.js.flow +16 -13
- package/relay-hooks/prepareEntryPoint_DEPRECATED.js.flow +7 -7
- package/relay-hooks/readFragmentInternal.js.flow +11 -11
- package/relay-hooks/rsc/serverFetchQuery.js.flow +31 -0
- package/relay-hooks/rsc/serverPreloadQuery.js.flow +69 -0
- package/relay-hooks/rsc/serverReadFragment.js.flow +33 -0
- package/relay-hooks/rsc/useQueryFromServer.js.flow +135 -0
- package/relay-hooks/useClientQuery.d.ts +16 -0
- package/relay-hooks/useClientQuery.js.flow +2 -2
- package/relay-hooks/useEntryPointLoader.d.ts +21 -0
- package/relay-hooks/useEntryPointLoader.js.flow +11 -11
- package/relay-hooks/useFragment.d.ts +36 -0
- package/relay-hooks/useFragment.js.flow +8 -8
- package/relay-hooks/useFragmentInternal.js.flow +1 -1
- package/relay-hooks/useFragmentInternal_CURRENT.js.flow +54 -22
- package/relay-hooks/useFragmentInternal_EXPERIMENTAL.js.flow +95 -46
- package/relay-hooks/useIsOperationNodeActive.js.flow +1 -1
- package/relay-hooks/useIsParentQueryActive.js.flow +5 -1
- package/relay-hooks/useLazyLoadQuery.d.ts +19 -0
- package/relay-hooks/useLazyLoadQuery.js.flow +14 -7
- package/relay-hooks/useLazyLoadQueryNode.js.flow +67 -28
- package/relay-hooks/useLoadMoreFunction.d.ts +56 -0
- package/relay-hooks/useLoadMoreFunction.js.flow +7 -6
- package/relay-hooks/useLoadMoreFunction_EXPERIMENTAL.js.flow +5 -5
- package/relay-hooks/useMemoVariables.js.flow +1 -1
- package/relay-hooks/useMutation.d.ts +36 -0
- package/relay-hooks/useMutation.js.flow +9 -17
- package/relay-hooks/useMutationAction_EXPERIMENTAL.js.flow +68 -0
- package/relay-hooks/usePaginationFragment.d.ts +33 -0
- package/relay-hooks/usePaginationFragment.js.flow +19 -11
- package/relay-hooks/usePrefetchableForwardPaginationFragment.js.flow +23 -18
- package/relay-hooks/usePrefetchableForwardPaginationFragment_EXPERIMENTAL.js.flow +23 -18
- package/relay-hooks/usePreloadedQuery.d.ts +17 -0
- package/relay-hooks/usePreloadedQuery.js.flow +119 -85
- package/relay-hooks/useQueryLoader.d.ts +33 -0
- package/relay-hooks/useQueryLoader.js.flow +28 -24
- package/relay-hooks/useQueryLoader_EXPERIMENTAL.js.flow +10 -10
- package/relay-hooks/useRefetchableFragment.d.ts +23 -0
- package/relay-hooks/useRefetchableFragment.js.flow +20 -11
- package/relay-hooks/useRefetchableFragmentInternal.js.flow +77 -79
- package/relay-hooks/useRelayEnvironment.d.ts +10 -0
- package/relay-hooks/useRelayLoggingContext.js.flow +1 -1
- package/relay-hooks/useSubscribeToInvalidationState.d.ts +19 -0
- package/relay-hooks/useSubscribeToInvalidationState.js.flow +1 -1
- package/relay-hooks/useSubscription.d.ts +14 -0
- package/relay-hooks/useSubscription.js.flow +1 -1
- package/rsc-client_EXPERIMENTAL.d.ts +17 -0
- package/rsc-client_EXPERIMENTAL.js +10 -0
- package/rsc-client_EXPERIMENTAL.js.flow +23 -0
- package/rsc_EXPERIMENTAL.d.ts +48 -0
- package/rsc_EXPERIMENTAL.js +10 -0
- package/rsc_EXPERIMENTAL.js.flow +90 -0
|
@@ -13,64 +13,69 @@ var _require2 = require('relay-runtime'),
|
|
|
13
13
|
var warning = require("fbjs/lib/warning");
|
|
14
14
|
function usePreloadedQuery(gqlQuery, preloadedQuery, options) {
|
|
15
15
|
var environment = useRelayEnvironment();
|
|
16
|
-
var
|
|
17
|
-
fetchPolicy = preloadedQuery.fetchPolicy,
|
|
18
|
-
source = preloadedQuery.source,
|
|
19
|
-
variables = preloadedQuery.variables,
|
|
20
|
-
networkCacheConfig = preloadedQuery.networkCacheConfig;
|
|
21
|
-
var operation = useMemoOperationDescriptor(gqlQuery, variables, networkCacheConfig);
|
|
16
|
+
var operation = useMemoOperationDescriptor(gqlQuery, preloadedQuery != null ? preloadedQuery.variables : {}, preloadedQuery != null ? preloadedQuery.networkCacheConfig : undefined);
|
|
22
17
|
var useLazyLoadQueryNodeParams;
|
|
23
|
-
if (preloadedQuery
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
if (source != null && environment === preloadedQuery.environment) {
|
|
49
|
-
fetchObservable = source.ifEmpty(fallbackFetchObservable);
|
|
50
|
-
} else if (environment !== preloadedQuery.environment) {
|
|
51
|
-
process.env.NODE_ENV !== "production" ? warning(false, 'usePreloadedQuery(): usePreloadedQuery was passed a preloaded query ' + 'that was created with a different environment than the one that is currently ' + 'in context. In the future, this will become a hard error.') : void 0;
|
|
52
|
-
fetchObservable = fallbackFetchObservable;
|
|
18
|
+
if (preloadedQuery != null) {
|
|
19
|
+
var fetchKey = preloadedQuery.fetchKey,
|
|
20
|
+
fetchPolicy = preloadedQuery.fetchPolicy,
|
|
21
|
+
source = preloadedQuery.source;
|
|
22
|
+
if (preloadedQuery.kind === 'PreloadedQuery_DEPRECATED') {
|
|
23
|
+
!(operation.request.node.params.name === preloadedQuery.name) ? process.env.NODE_ENV !== "production" ? invariant(false, 'usePreloadedQuery(): Expected data to be prefetched for query `%s`, ' + 'got prefetch results for query `%s`.', operation.request.node.params.name, preloadedQuery.name) : invariant(false) : void 0;
|
|
24
|
+
useLazyLoadQueryNodeParams = {
|
|
25
|
+
componentDisplayName: 'usePreloadedQuery()',
|
|
26
|
+
fetchKey: fetchKey,
|
|
27
|
+
fetchObservable: fetchQueryDeduped(environment, operation.request.identifier, function () {
|
|
28
|
+
if (environment === preloadedQuery.environment && source != null) {
|
|
29
|
+
return environment.executeWithSource({
|
|
30
|
+
operation: operation,
|
|
31
|
+
source: source
|
|
32
|
+
});
|
|
33
|
+
} else {
|
|
34
|
+
return environment.execute({
|
|
35
|
+
operation: operation
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}),
|
|
39
|
+
fetchPolicy: fetchPolicy,
|
|
40
|
+
query: operation,
|
|
41
|
+
renderPolicy: options === null || options === void 0 ? void 0 : options.UNSTABLE_renderPolicy
|
|
42
|
+
};
|
|
53
43
|
} else {
|
|
54
|
-
|
|
44
|
+
process.env.NODE_ENV !== "production" ? warning(preloadedQuery.isDisposed === false, 'usePreloadedQuery(): Expected preloadedQuery to not be disposed yet. ' + 'This is because disposing the query marks it for future garbage ' + 'collection, and as such query results may no longer be present in the Relay ' + 'store. In the future, this will become a hard error.') : void 0;
|
|
45
|
+
var fallbackFetchObservable = fetchQuery(environment, operation);
|
|
46
|
+
var fetchObservable;
|
|
47
|
+
if (source != null && environment === preloadedQuery.environment) {
|
|
48
|
+
fetchObservable = source.ifEmpty(fallbackFetchObservable);
|
|
49
|
+
} else if (environment !== preloadedQuery.environment) {
|
|
50
|
+
process.env.NODE_ENV !== "production" ? warning(false, 'usePreloadedQuery(): usePreloadedQuery was passed a preloaded query ' + 'that was created with a different environment than the one that is currently ' + 'in context. In the future, this will become a hard error.') : void 0;
|
|
51
|
+
fetchObservable = fallbackFetchObservable;
|
|
52
|
+
} else {
|
|
53
|
+
fetchObservable = fallbackFetchObservable;
|
|
54
|
+
}
|
|
55
|
+
useLazyLoadQueryNodeParams = {
|
|
56
|
+
componentDisplayName: 'usePreloadedQuery()',
|
|
57
|
+
fetchKey: fetchKey,
|
|
58
|
+
fetchObservable: fetchObservable,
|
|
59
|
+
fetchPolicy: fetchPolicy,
|
|
60
|
+
query: operation,
|
|
61
|
+
renderPolicy: options === null || options === void 0 ? void 0 : options.UNSTABLE_renderPolicy
|
|
62
|
+
};
|
|
55
63
|
}
|
|
64
|
+
} else {
|
|
56
65
|
useLazyLoadQueryNodeParams = {
|
|
57
66
|
componentDisplayName: 'usePreloadedQuery()',
|
|
58
|
-
|
|
59
|
-
fetchKey: fetchKey,
|
|
60
|
-
fetchPolicy: fetchPolicy,
|
|
61
|
-
query: operation,
|
|
62
|
-
renderPolicy: options === null || options === void 0 ? void 0 : options.UNSTABLE_renderPolicy
|
|
67
|
+
fragmentNode: gqlQuery.fragment
|
|
63
68
|
};
|
|
64
69
|
}
|
|
65
70
|
var data = useLazyLoadQueryNode(useLazyLoadQueryNodeParams);
|
|
66
71
|
if (process.env.NODE_ENV !== "production") {
|
|
67
72
|
useDebugValue({
|
|
68
|
-
query: preloadedQuery.name,
|
|
69
|
-
variables: preloadedQuery.variables,
|
|
70
73
|
data: data,
|
|
71
|
-
fetchKey: fetchKey,
|
|
72
|
-
fetchPolicy: fetchPolicy,
|
|
73
|
-
|
|
74
|
+
fetchKey: preloadedQuery === null || preloadedQuery === void 0 ? void 0 : preloadedQuery.fetchKey,
|
|
75
|
+
fetchPolicy: preloadedQuery === null || preloadedQuery === void 0 ? void 0 : preloadedQuery.fetchPolicy,
|
|
76
|
+
query: preloadedQuery === null || preloadedQuery === void 0 ? void 0 : preloadedQuery.name,
|
|
77
|
+
renderPolicy: options === null || options === void 0 ? void 0 : options.UNSTABLE_renderPolicy,
|
|
78
|
+
variables: preloadedQuery === null || preloadedQuery === void 0 ? void 0 : preloadedQuery.variables
|
|
74
79
|
});
|
|
75
80
|
}
|
|
76
81
|
return data;
|
|
@@ -59,9 +59,9 @@ function useQueryLoader_CURRENT(preloadableRequest, initialQueryReference) {
|
|
|
59
59
|
}, [isMountedRef]);
|
|
60
60
|
var queryLoaderCallback = useCallback(function (variables, options) {
|
|
61
61
|
var mergedOptions = options != null && options.hasOwnProperty('__environment') ? {
|
|
62
|
+
__nameForWarning: options.__nameForWarning,
|
|
62
63
|
fetchPolicy: options.fetchPolicy,
|
|
63
|
-
networkCacheConfig: options.networkCacheConfig
|
|
64
|
-
__nameForWarning: options.__nameForWarning
|
|
64
|
+
networkCacheConfig: options.networkCacheConfig
|
|
65
65
|
} : options;
|
|
66
66
|
if (isMountedRef.current) {
|
|
67
67
|
var _options$__environmen;
|
|
@@ -62,9 +62,9 @@ function useQueryLoader_EXPERIMENTAL(preloadableRequest, initialQueryReference)
|
|
|
62
62
|
return;
|
|
63
63
|
}
|
|
64
64
|
var mergedOptions = options != null && options.hasOwnProperty('__environment') ? {
|
|
65
|
+
__nameForWarning: options.__nameForWarning,
|
|
65
66
|
fetchPolicy: options.fetchPolicy,
|
|
66
|
-
networkCacheConfig: options.networkCacheConfig
|
|
67
|
-
__nameForWarning: options.__nameForWarning
|
|
67
|
+
networkCacheConfig: options.networkCacheConfig
|
|
68
68
|
} : options;
|
|
69
69
|
var updatedQueryReference = loadQuery((_options$__environmen = options === null || options === void 0 ? void 0 : options.__environment) !== null && _options$__environmen !== void 0 ? _options$__environmen : environment, preloadableRequest, variables, mergedOptions);
|
|
70
70
|
(_undisposedQueryRefer3 = undisposedQueryReferencesRef.current) === null || _undisposedQueryRefer3 === void 0 ? void 0 : _undisposedQueryRefer3.add(updatedQueryReference);
|
|
@@ -91,9 +91,9 @@ function useRefetchableFragmentInternal(fragmentNode, parentFragmentRef, compone
|
|
|
91
91
|
var fragmentRef = parentFragmentRef;
|
|
92
92
|
if (shouldReset) {
|
|
93
93
|
dispatch({
|
|
94
|
-
type: 'reset',
|
|
95
94
|
environment: environment,
|
|
96
|
-
fragmentIdentifier: fragmentIdentifier
|
|
95
|
+
fragmentIdentifier: fragmentIdentifier,
|
|
96
|
+
type: 'reset'
|
|
97
97
|
});
|
|
98
98
|
disposeQuery();
|
|
99
99
|
} else if (refetchQuery != null && queryRef != null) {
|
|
@@ -107,13 +107,13 @@ function useRefetchableFragmentInternal(fragmentNode, parentFragmentRef, compone
|
|
|
107
107
|
var fetchObservable = queryRef.source != null ? queryRef.source : fetchQuery(environment, refetchQuery);
|
|
108
108
|
var queryResult = profilerContext.wrapPrepareQueryResource(function () {
|
|
109
109
|
return QueryResource.prepare(refetchQuery, fetchObservable, fetchPolicy, renderPolicy, {
|
|
110
|
-
error: handleQueryCompleted,
|
|
111
110
|
complete: function complete() {
|
|
112
111
|
if (process.env.NODE_ENV !== "production") {
|
|
113
112
|
debugFunctions.checkSameTypeAfterRefetch(debugPreviousIDAndTypename, environment, fragmentNode, componentDisplayName);
|
|
114
113
|
}
|
|
115
114
|
handleQueryCompleted();
|
|
116
|
-
}
|
|
115
|
+
},
|
|
116
|
+
error: handleQueryCompleted
|
|
117
117
|
}, queryRef.fetchKey, profilerContext);
|
|
118
118
|
});
|
|
119
119
|
var queryData = readFragmentInternal(environment, queryResult.fragmentNode, queryResult.fragmentRef, componentDisplayName).data;
|
|
@@ -174,17 +174,17 @@ function useRefetchFunction(componentDisplayName, dispatch, disposeQuery, fragme
|
|
|
174
174
|
force: true
|
|
175
175
|
});
|
|
176
176
|
loadQuery(refetchQuery.request.variables, {
|
|
177
|
-
fetchPolicy: fetchPolicy,
|
|
178
177
|
__environment: refetchEnvironment,
|
|
179
|
-
__nameForWarning: 'refetch'
|
|
178
|
+
__nameForWarning: 'refetch',
|
|
179
|
+
fetchPolicy: fetchPolicy
|
|
180
180
|
});
|
|
181
181
|
dispatch({
|
|
182
|
-
type: 'refetch',
|
|
183
182
|
fetchPolicy: fetchPolicy,
|
|
184
183
|
onComplete: onComplete,
|
|
185
184
|
refetchEnvironment: refetchEnvironment,
|
|
186
185
|
refetchQuery: refetchQuery,
|
|
187
|
-
renderPolicy: renderPolicy
|
|
186
|
+
renderPolicy: renderPolicy,
|
|
187
|
+
type: 'refetch'
|
|
188
188
|
});
|
|
189
189
|
return {
|
|
190
190
|
dispose: disposeQuery
|
|
@@ -194,23 +194,16 @@ function useRefetchFunction(componentDisplayName, dispatch, disposeQuery, fragme
|
|
|
194
194
|
var debugFunctions;
|
|
195
195
|
if (process.env.NODE_ENV !== "production") {
|
|
196
196
|
debugFunctions = {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
var id = memoRefetchVariables === null || memoRefetchVariables === void 0 ? void 0 : memoRefetchVariables[identifierQueryVariableName !== null && identifierQueryVariableName !== void 0 ? identifierQueryVariableName : 'id'];
|
|
201
|
-
if (fragmentRefPathInResponse.length !== 1 || fragmentRefPathInResponse[0] !== 'node' || id == null) {
|
|
202
|
-
return null;
|
|
197
|
+
checkSameIDAfterRefetch: function checkSameIDAfterRefetch(previousIDAndTypename, refetchedFragmentRef, fragmentNode, componentDisplayName) {
|
|
198
|
+
if (previousIDAndTypename == null || refetchedFragmentRef == null) {
|
|
199
|
+
return;
|
|
203
200
|
}
|
|
204
|
-
var
|
|
205
|
-
|
|
206
|
-
var
|
|
207
|
-
if (
|
|
208
|
-
|
|
201
|
+
var _require4 = require('relay-runtime'),
|
|
202
|
+
ID_KEY = _require4.ID_KEY;
|
|
203
|
+
var resultID = refetchedFragmentRef[ID_KEY];
|
|
204
|
+
if (resultID != null && resultID !== previousIDAndTypename.id) {
|
|
205
|
+
process.env.NODE_ENV !== "production" ? warning(false, 'Relay: Call to `refetch` returned a different id, expected ' + '`%s`, got `%s`, on `%s` in `%s`. ' + 'Please make sure the server correctly implements ' + 'unique id requirement.', resultID, previousIDAndTypename.id, fragmentNode.name, componentDisplayName) : void 0;
|
|
209
206
|
}
|
|
210
|
-
return {
|
|
211
|
-
id: id,
|
|
212
|
-
typename: typename
|
|
213
|
-
};
|
|
214
207
|
},
|
|
215
208
|
checkSameTypeAfterRefetch: function checkSameTypeAfterRefetch(previousIDAndType, environment, fragmentNode, componentDisplayName) {
|
|
216
209
|
var _require5 = require('relay-runtime'),
|
|
@@ -225,16 +218,23 @@ if (process.env.NODE_ENV !== "production") {
|
|
|
225
218
|
process.env.NODE_ENV !== "production" ? warning(false, 'Relay: Call to `refetch` returned data with a different ' + '__typename: was `%s`, now `%s`, on `%s` in `%s`. ' + 'Please make sure the server correctly implements' + 'unique id requirement.', previousIDAndType.typename, typename, fragmentNode.name, componentDisplayName) : void 0;
|
|
226
219
|
}
|
|
227
220
|
},
|
|
228
|
-
|
|
229
|
-
if (previousIDAndTypename == null || refetchedFragmentRef == null) {
|
|
230
|
-
return;
|
|
231
|
-
}
|
|
221
|
+
getInitialIDAndType: function getInitialIDAndType(memoRefetchVariables, fragmentRefPathInResponse, identifierQueryVariableName, environment) {
|
|
232
222
|
var _require6 = require('relay-runtime'),
|
|
233
|
-
|
|
234
|
-
var
|
|
235
|
-
if (
|
|
236
|
-
|
|
223
|
+
Record = _require6.Record;
|
|
224
|
+
var id = memoRefetchVariables === null || memoRefetchVariables === void 0 ? void 0 : memoRefetchVariables[identifierQueryVariableName !== null && identifierQueryVariableName !== void 0 ? identifierQueryVariableName : 'id'];
|
|
225
|
+
if (fragmentRefPathInResponse.length !== 1 || fragmentRefPathInResponse[0] !== 'node' || id == null) {
|
|
226
|
+
return null;
|
|
237
227
|
}
|
|
228
|
+
var recordSource = environment.getStore().getSource();
|
|
229
|
+
var record = recordSource.get(id);
|
|
230
|
+
var typename = record == null ? null : Record.getType(record);
|
|
231
|
+
if (typename == null) {
|
|
232
|
+
return null;
|
|
233
|
+
}
|
|
234
|
+
return {
|
|
235
|
+
id: id,
|
|
236
|
+
typename: typename
|
|
237
|
+
};
|
|
238
238
|
}
|
|
239
239
|
};
|
|
240
240
|
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _asyncToGenerator = require("@babel/runtime/helpers/asyncToGenerator").default;
|
|
4
|
+
var serverFetchQueryImpl = require('./relay-hooks/rsc/serverFetchQuery');
|
|
5
|
+
var serverPreloadQueryImpl = require('./relay-hooks/rsc/serverPreloadQuery');
|
|
6
|
+
var serverReadFragmentImpl = require('./relay-hooks/rsc/serverReadFragment');
|
|
7
|
+
var invariant = require('invariant');
|
|
8
|
+
var React = require('react');
|
|
9
|
+
function createServerEnvironment(create) {
|
|
10
|
+
var cache = React.cache;
|
|
11
|
+
!(typeof cache === 'function') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Relay RSC APIs require React 19+') : invariant(false) : void 0;
|
|
12
|
+
var getEnvironment = cache(create);
|
|
13
|
+
function serverFetchQuery(_x, _x2) {
|
|
14
|
+
return _serverFetchQuery.apply(this, arguments);
|
|
15
|
+
}
|
|
16
|
+
function _serverFetchQuery() {
|
|
17
|
+
_serverFetchQuery = _asyncToGenerator(function* (query, variables) {
|
|
18
|
+
return serverFetchQueryImpl(getEnvironment(), query, variables);
|
|
19
|
+
});
|
|
20
|
+
return _serverFetchQuery.apply(this, arguments);
|
|
21
|
+
}
|
|
22
|
+
function serverPreloadQuery(query, variables) {
|
|
23
|
+
return serverPreloadQueryImpl(getEnvironment(), query, variables);
|
|
24
|
+
}
|
|
25
|
+
function serverReadFragment(_x3, _x4) {
|
|
26
|
+
return _serverReadFragment.apply(this, arguments);
|
|
27
|
+
}
|
|
28
|
+
function _serverReadFragment() {
|
|
29
|
+
_serverReadFragment = _asyncToGenerator(function* (fragment, fragmentRef) {
|
|
30
|
+
return serverReadFragmentImpl(getEnvironment(), fragment, fragmentRef);
|
|
31
|
+
});
|
|
32
|
+
return _serverReadFragment.apply(this, arguments);
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
getEnvironment: getEnvironment,
|
|
36
|
+
serverFetchQuery: serverFetchQuery,
|
|
37
|
+
serverPreloadQuery: serverPreloadQuery,
|
|
38
|
+
serverReadFragment: serverReadFragment
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
module.exports = {
|
|
42
|
+
createServerEnvironment: createServerEnvironment
|
|
43
|
+
};
|
|
@@ -17,7 +17,7 @@ const RelayEnvironmentProvider = require('../relay-hooks/RelayEnvironmentProvide
|
|
|
17
17
|
const useRelayActorEnvironment = require('./useRelayActorEnvironment');
|
|
18
18
|
const React = require('react');
|
|
19
19
|
|
|
20
|
-
export opaque type ActorChangePoint<TFragmentRef> =
|
|
20
|
+
export opaque type ActorChangePoint<TFragmentRef> = Readonly<{
|
|
21
21
|
__fragmentRef: TFragmentRef,
|
|
22
22
|
__viewer: ActorIdentifier,
|
|
23
23
|
}>;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-relay",
|
|
3
3
|
"description": "A framework for building GraphQL-driven React applications.",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "21.0.1",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"graphql",
|
|
7
7
|
"relay",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"fbjs": "^3.0.2",
|
|
21
21
|
"invariant": "^2.2.4",
|
|
22
22
|
"nullthrows": "^1.1.1",
|
|
23
|
-
"relay-runtime": "
|
|
23
|
+
"relay-runtime": "21.0.1"
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
26
26
|
"react": "^16.9.0 || ^17 || ^18 || ^19"
|
|
@@ -29,5 +29,6 @@
|
|
|
29
29
|
"": "./"
|
|
30
30
|
},
|
|
31
31
|
"main": "index.js",
|
|
32
|
+
"types": "index.d.ts",
|
|
32
33
|
"haste_commonjs": true
|
|
33
34
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and 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
|
+
import {EntryPointComponent, PreloadedEntryPoint} from '../ReactRelayTypes';
|
|
9
|
+
import { ReactElement } from 'react';
|
|
10
|
+
|
|
11
|
+
type GetComponentFromPreloadedEntryPoint<T> = T extends PreloadedEntryPoint<infer C> ? C : never;
|
|
12
|
+
type GetRuntimePropsFromComponent<T> = T extends EntryPointComponent<any, any, infer R, any> ? R : never;
|
|
13
|
+
|
|
14
|
+
export function EntryPointContainer<TPreloadedEntryPoint extends PreloadedEntryPoint<any>>({
|
|
15
|
+
entryPointReference,
|
|
16
|
+
props,
|
|
17
|
+
}: Readonly<{
|
|
18
|
+
entryPointReference: TPreloadedEntryPoint;
|
|
19
|
+
props: GetRuntimePropsFromComponent<GetComponentFromPreloadedEntryPoint<TPreloadedEntryPoint>>;
|
|
20
|
+
}>): ReactElement;
|
|
21
|
+
|
|
22
|
+
export {};
|
|
@@ -24,16 +24,16 @@ const warning = require('warning');
|
|
|
24
24
|
|
|
25
25
|
component EntryPointContainer<
|
|
26
26
|
// $FlowFixMe[unsupported-variance-annotation]
|
|
27
|
-
TRuntimeProps
|
|
28
|
-
TRenders
|
|
27
|
+
TRuntimeProps extends {...},
|
|
28
|
+
TRenders extends React.Node,
|
|
29
29
|
// $FlowFixMe[unsupported-variance-annotation]
|
|
30
|
-
TEntryPointComponent
|
|
31
|
-
// $
|
|
30
|
+
TEntryPointComponent extends EntryPointComponent<
|
|
31
|
+
// $FlowExpectedError[unclear-type] s[unclear-type] Use any to accept all kinds of EntryPointComponent
|
|
32
32
|
any,
|
|
33
|
-
// $
|
|
33
|
+
// $FlowExpectedError[unclear-type] s[unclear-type] Use any to accept all kinds of EntryPointComponent
|
|
34
34
|
any,
|
|
35
35
|
TRuntimeProps,
|
|
36
|
-
// $
|
|
36
|
+
// $FlowExpectedError[unclear-type] s[unclear-type] Use any to accept all kinds of EntryPointComponent
|
|
37
37
|
any,
|
|
38
38
|
TRenders,
|
|
39
39
|
>,
|