react-relay 20.1.1 → 21.0.0
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 +31 -24
- 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.js.flow +18 -20
- 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 +24 -27
- 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 +4 -4
- package/getRootVariablesForFragments.js.flow +1 -1
- package/hooks.js +1 -1
- package/hooks.js.flow +23 -8
- 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.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.js.flow +6 -6
- package/relay-hooks/EntryPointTypes.flow.js.flow +61 -67
- package/relay-hooks/LazyLoadEntryPointContainer_DEPRECATED.react.js.flow +23 -21
- package/relay-hooks/MatchContainer.js.flow +12 -6
- package/relay-hooks/NestedRelayEntryPointBuilderUtils.js.flow +3 -9
- package/relay-hooks/QueryResource.js.flow +6 -6
- 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 +48 -1
- 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 +4 -4
- package/relay-hooks/getConnectionState.js.flow +2 -2
- package/relay-hooks/legacy/FragmentResource.js.flow +13 -13
- package/relay-hooks/legacy/useBlockingPaginationFragment.js.flow +24 -25
- package/relay-hooks/legacy/useFragmentNode.js.flow +4 -4
- package/relay-hooks/legacy/useRefetchableFragmentNode.js.flow +79 -81
- package/relay-hooks/loadEntryPoint.js.flow +15 -13
- package/relay-hooks/loadQuery.js.flow +18 -18
- package/relay-hooks/preloadQuery_DEPRECATED.js.flow +16 -13
- package/relay-hooks/prepareEntryPoint_DEPRECATED.js.flow +7 -7
- package/relay-hooks/readFragmentInternal.js.flow +9 -9
- 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.js.flow +2 -2
- package/relay-hooks/useEntryPointLoader.js.flow +11 -11
- package/relay-hooks/useFragment.js.flow +7 -7
- 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 +1 -1
- package/relay-hooks/useLazyLoadQuery.js.flow +10 -3
- package/relay-hooks/useLazyLoadQueryNode.js.flow +67 -28
- 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.js.flow +8 -16
- package/relay-hooks/useMutationAction_EXPERIMENTAL.js.flow +68 -0
- package/relay-hooks/usePaginationFragment.js.flow +15 -11
- package/relay-hooks/usePrefetchableForwardPaginationFragment.js.flow +19 -18
- package/relay-hooks/usePrefetchableForwardPaginationFragment_EXPERIMENTAL.js.flow +19 -18
- package/relay-hooks/usePreloadedQuery.js.flow +119 -85
- package/relay-hooks/useQueryLoader.js.flow +27 -23
- package/relay-hooks/useQueryLoader_EXPERIMENTAL.js.flow +10 -10
- package/relay-hooks/useRefetchableFragment.js.flow +16 -11
- package/relay-hooks/useRefetchableFragmentInternal.js.flow +77 -79
- package/relay-hooks/useRelayLoggingContext.js.flow +1 -1
- package/relay-hooks/useSubscribeToInvalidationState.js.flow +1 -1
- package/relay-hooks/useSubscription.js.flow +1 -1
- package/rsc-client_EXPERIMENTAL.js +10 -0
- package/rsc-client_EXPERIMENTAL.js.flow +23 -0
- package/rsc_EXPERIMENTAL.js +10 -0
- package/rsc_EXPERIMENTAL.js.flow +90 -0
|
@@ -6,10 +6,9 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @oncall relay
|
|
8
8
|
*
|
|
9
|
-
* @generated SignedSource<<
|
|
9
|
+
* @generated SignedSource<<5b479f9774127420b57137125b4efd98>>
|
|
10
10
|
* @flow
|
|
11
11
|
* @lightSyntaxTransform
|
|
12
|
-
* @nogrep
|
|
13
12
|
*/
|
|
14
13
|
|
|
15
14
|
/* eslint-disable */
|
|
@@ -20,11 +19,11 @@
|
|
|
20
19
|
import type { Fragment, ReaderFragment } from 'relay-runtime';
|
|
21
20
|
import type { FragmentType } from "relay-runtime";
|
|
22
21
|
declare export opaque type RelayModernFlowtest_users$fragmentType: FragmentType;
|
|
23
|
-
export type RelayModernFlowtest_users$data =
|
|
22
|
+
export type RelayModernFlowtest_users$data = ReadonlyArray<{|
|
|
24
23
|
+name: ?string,
|
|
25
24
|
+$fragmentType: RelayModernFlowtest_users$fragmentType,
|
|
26
25
|
|}>;
|
|
27
|
-
export type RelayModernFlowtest_users$key =
|
|
26
|
+
export type RelayModernFlowtest_users$key = ReadonlyArray<{
|
|
28
27
|
+$data?: RelayModernFlowtest_users$data,
|
|
29
28
|
+$fragmentSpreads: RelayModernFlowtest_users$fragmentType,
|
|
30
29
|
...
|
|
@@ -52,10 +51,10 @@ var node/*: ReaderFragment*/ = {
|
|
|
52
51
|
};
|
|
53
52
|
|
|
54
53
|
if (__DEV__) {
|
|
55
|
-
(node
|
|
54
|
+
(node/*:: as any*/).hash = "4e6f0e70d48ec58651c17e3150c63d05";
|
|
56
55
|
}
|
|
57
56
|
|
|
58
|
-
module.exports = ((node
|
|
57
|
+
module.exports = ((node/*:: as any*/)/*:: as Fragment<
|
|
59
58
|
RelayModernFlowtest_users$fragmentType,
|
|
60
59
|
RelayModernFlowtest_users$data,
|
|
61
60
|
>*/);
|
|
@@ -36,7 +36,7 @@ type ContainerCreator = (
|
|
|
36
36
|
* Helper to create the Relay HOCs with ref forwarding, setting the displayName
|
|
37
37
|
* and reading the React context.
|
|
38
38
|
*/
|
|
39
|
-
function buildReactRelayContainer<TBase
|
|
39
|
+
function buildReactRelayContainer<TBase extends component(...empty)>(
|
|
40
40
|
ComponentClass: TBase,
|
|
41
41
|
fragmentSpec: GeneratedNodeMap,
|
|
42
42
|
createContainerWithFragments: ContainerCreator,
|
|
@@ -55,7 +55,7 @@ function buildReactRelayContainer<TBase: component(...empty)>(
|
|
|
55
55
|
function ForwardRef(
|
|
56
56
|
props: any,
|
|
57
57
|
ref:
|
|
58
|
-
| ((null | React.ElementRef<TBase>) =>
|
|
58
|
+
| ((null | React.ElementRef<TBase>) => unknown)
|
|
59
59
|
| {-current: null | React.ElementRef<TBase>, ...},
|
|
60
60
|
) {
|
|
61
61
|
// $FlowFixMe[react-rule-hook]
|
|
@@ -86,11 +86,11 @@ function buildReactRelayContainer<TBase: component(...empty)>(
|
|
|
86
86
|
|
|
87
87
|
if (__DEV__) {
|
|
88
88
|
// Used by RelayModernTestUtils
|
|
89
|
-
(ForwardContainer
|
|
89
|
+
(ForwardContainer as any).__ComponentClass = ComponentClass;
|
|
90
90
|
ForwardContainer.displayName = containerName;
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
// $FlowFixMe[incompatible-
|
|
93
|
+
// $FlowFixMe[incompatible-type]
|
|
94
94
|
return ForwardContainer;
|
|
95
95
|
}
|
|
96
96
|
|
|
@@ -15,7 +15,7 @@ import type {FragmentMap, Variables} from 'relay-runtime';
|
|
|
15
15
|
|
|
16
16
|
const {getSelector} = require('relay-runtime');
|
|
17
17
|
|
|
18
|
-
function getRootVariablesForFragments<TProps
|
|
18
|
+
function getRootVariablesForFragments<TProps extends {...}>(
|
|
19
19
|
fragments: FragmentMap,
|
|
20
20
|
props: TProps,
|
|
21
21
|
): Variables {
|
package/hooks.js
CHANGED
package/hooks.js.flow
CHANGED
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
|
|
12
12
|
'use strict';
|
|
13
13
|
|
|
14
|
+
/* eslint relay-internal/esm-compatible-cjs: error */
|
|
15
|
+
|
|
14
16
|
const EntryPointContainer = require('./relay-hooks/EntryPointContainer.react');
|
|
15
17
|
const loadEntryPoint = require('./relay-hooks/loadEntryPoint');
|
|
16
18
|
const {loadQuery} = require('./relay-hooks/loadQuery');
|
|
@@ -20,6 +22,7 @@ const useEntryPointLoader = require('./relay-hooks/useEntryPointLoader');
|
|
|
20
22
|
const useFragment = require('./relay-hooks/useFragment');
|
|
21
23
|
const useLazyLoadQuery = require('./relay-hooks/useLazyLoadQuery');
|
|
22
24
|
const useMutation = require('./relay-hooks/useMutation');
|
|
25
|
+
const useMutationAction_EXPERIMENTAL = require('./relay-hooks/useMutationAction_EXPERIMENTAL');
|
|
23
26
|
const usePaginationFragment = require('./relay-hooks/usePaginationFragment');
|
|
24
27
|
const usePreloadedQuery = require('./relay-hooks/usePreloadedQuery');
|
|
25
28
|
const useQueryLoader = require('./relay-hooks/useQueryLoader');
|
|
@@ -62,26 +65,37 @@ export type {
|
|
|
62
65
|
FetchPolicy,
|
|
63
66
|
} from 'relay-runtime';
|
|
64
67
|
|
|
68
|
+
const {
|
|
69
|
+
ConnectionHandler,
|
|
70
|
+
applyOptimisticMutation,
|
|
71
|
+
commitLocalUpdate,
|
|
72
|
+
commitMutation,
|
|
73
|
+
graphql,
|
|
74
|
+
readInlineData,
|
|
75
|
+
requestSubscription,
|
|
76
|
+
fetchQuery,
|
|
77
|
+
} = RelayRuntime;
|
|
78
|
+
|
|
65
79
|
/**
|
|
66
80
|
* The public interface for Relay Hooks.
|
|
67
81
|
* This will eventually become the main public interface for react-relay.
|
|
68
82
|
*/
|
|
69
83
|
module.exports = {
|
|
70
|
-
ConnectionHandler
|
|
84
|
+
ConnectionHandler,
|
|
71
85
|
|
|
72
|
-
applyOptimisticMutation
|
|
73
|
-
commitLocalUpdate
|
|
74
|
-
commitMutation
|
|
75
|
-
graphql
|
|
76
|
-
readInlineData
|
|
77
|
-
requestSubscription
|
|
86
|
+
applyOptimisticMutation,
|
|
87
|
+
commitLocalUpdate,
|
|
88
|
+
commitMutation,
|
|
89
|
+
graphql,
|
|
90
|
+
readInlineData,
|
|
91
|
+
requestSubscription,
|
|
78
92
|
|
|
79
93
|
EntryPointContainer: EntryPointContainer,
|
|
80
94
|
RelayEnvironmentProvider: RelayEnvironmentProvider,
|
|
81
95
|
|
|
82
96
|
ProfilerContext: ProfilerContext,
|
|
83
97
|
|
|
84
|
-
fetchQuery
|
|
98
|
+
fetchQuery,
|
|
85
99
|
|
|
86
100
|
loadQuery: loadQuery,
|
|
87
101
|
loadEntryPoint: loadEntryPoint,
|
|
@@ -91,6 +105,7 @@ module.exports = {
|
|
|
91
105
|
useEntryPointLoader: useEntryPointLoader,
|
|
92
106
|
useQueryLoader: useQueryLoader,
|
|
93
107
|
useMutation: useMutation,
|
|
108
|
+
useMutationAction_EXPERIMENTAL: useMutationAction_EXPERIMENTAL,
|
|
94
109
|
usePaginationFragment: usePaginationFragment,
|
|
95
110
|
usePreloadedQuery: usePreloadedQuery,
|
|
96
111
|
useRefetchableFragment: useRefetchableFragment,
|
package/index.js
CHANGED
package/index.js.flow
CHANGED
|
@@ -9,8 +9,14 @@
|
|
|
9
9
|
* @oncall relay
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
+
/**
|
|
13
|
+
* LLM/AI Agent: Relay documentation is available in node_modules/relay-runtime/llm-docs/
|
|
14
|
+
*/
|
|
15
|
+
|
|
12
16
|
'use strict';
|
|
13
17
|
|
|
18
|
+
/* eslint relay-internal/esm-compatible-cjs: error */
|
|
19
|
+
|
|
14
20
|
const ReactRelayContext = require('./ReactRelayContext');
|
|
15
21
|
const ReactRelayFragmentContainer = require('./ReactRelayFragmentContainer');
|
|
16
22
|
const ReactRelayLocalQueryRenderer = require('./ReactRelayLocalQueryRenderer');
|
|
@@ -27,6 +33,7 @@ const useEntryPointLoader = require('./relay-hooks/useEntryPointLoader');
|
|
|
27
33
|
const useFragment = require('./relay-hooks/useFragment');
|
|
28
34
|
const useLazyLoadQuery = require('./relay-hooks/useLazyLoadQuery');
|
|
29
35
|
const useMutation = require('./relay-hooks/useMutation');
|
|
36
|
+
const useMutationAction_EXPERIMENTAL = require('./relay-hooks/useMutationAction_EXPERIMENTAL');
|
|
30
37
|
const usePaginationFragment = require('./relay-hooks/usePaginationFragment');
|
|
31
38
|
const usePrefetchableForwardPaginationFragment = require('./relay-hooks/usePrefetchableForwardPaginationFragment');
|
|
32
39
|
const usePreloadedQuery = require('./relay-hooks/usePreloadedQuery');
|
|
@@ -80,31 +87,49 @@ export type {
|
|
|
80
87
|
FetchPolicy,
|
|
81
88
|
} from 'relay-runtime';
|
|
82
89
|
|
|
90
|
+
const {
|
|
91
|
+
ConnectionHandler,
|
|
92
|
+
MutationTypes,
|
|
93
|
+
RangeOperations,
|
|
94
|
+
applyOptimisticMutation,
|
|
95
|
+
commitLocalUpdate,
|
|
96
|
+
commitMutation,
|
|
97
|
+
fetchQuery_DEPRECATED,
|
|
98
|
+
graphql,
|
|
99
|
+
readInlineData,
|
|
100
|
+
requestSubscription,
|
|
101
|
+
fetchQuery,
|
|
102
|
+
} = RelayRuntime;
|
|
103
|
+
|
|
104
|
+
const createFragmentContainer = ReactRelayFragmentContainer.createContainer;
|
|
105
|
+
const createPaginationContainer = ReactRelayPaginationContainer.createContainer;
|
|
106
|
+
const createRefetchContainer = ReactRelayRefetchContainer.createContainer;
|
|
107
|
+
|
|
83
108
|
/**
|
|
84
109
|
* The public interface to react-relay.
|
|
85
110
|
* Currently contains both Relay Hooks and legacy Container APIs.
|
|
86
111
|
* Will eventually only export the interface from ./hooks.js.
|
|
87
112
|
*/
|
|
88
113
|
module.exports = {
|
|
89
|
-
ConnectionHandler
|
|
114
|
+
ConnectionHandler,
|
|
90
115
|
QueryRenderer: ReactRelayQueryRenderer,
|
|
91
116
|
LocalQueryRenderer: ReactRelayLocalQueryRenderer,
|
|
92
117
|
|
|
93
|
-
MutationTypes
|
|
94
|
-
RangeOperations
|
|
118
|
+
MutationTypes,
|
|
119
|
+
RangeOperations,
|
|
95
120
|
|
|
96
121
|
ReactRelayContext,
|
|
97
122
|
|
|
98
|
-
applyOptimisticMutation
|
|
99
|
-
commitLocalUpdate
|
|
100
|
-
commitMutation
|
|
101
|
-
createFragmentContainer
|
|
102
|
-
createPaginationContainer
|
|
103
|
-
createRefetchContainer
|
|
104
|
-
fetchQuery_DEPRECATED
|
|
105
|
-
graphql
|
|
106
|
-
readInlineData
|
|
107
|
-
requestSubscription
|
|
123
|
+
applyOptimisticMutation,
|
|
124
|
+
commitLocalUpdate,
|
|
125
|
+
commitMutation,
|
|
126
|
+
createFragmentContainer,
|
|
127
|
+
createPaginationContainer,
|
|
128
|
+
createRefetchContainer,
|
|
129
|
+
fetchQuery_DEPRECATED,
|
|
130
|
+
graphql,
|
|
131
|
+
readInlineData,
|
|
132
|
+
requestSubscription,
|
|
108
133
|
|
|
109
134
|
// Relay Hooks
|
|
110
135
|
EntryPointContainer: EntryPointContainer,
|
|
@@ -112,7 +137,7 @@ module.exports = {
|
|
|
112
137
|
|
|
113
138
|
ProfilerContext: ProfilerContext,
|
|
114
139
|
|
|
115
|
-
fetchQuery
|
|
140
|
+
fetchQuery,
|
|
116
141
|
|
|
117
142
|
loadQuery: loadQuery,
|
|
118
143
|
loadEntryPoint: loadEntryPoint,
|
|
@@ -123,6 +148,7 @@ module.exports = {
|
|
|
123
148
|
useEntryPointLoader: useEntryPointLoader,
|
|
124
149
|
useQueryLoader: useQueryLoader,
|
|
125
150
|
useMutation: useMutation,
|
|
151
|
+
useMutationAction_EXPERIMENTAL: useMutationAction_EXPERIMENTAL,
|
|
126
152
|
usePaginationFragment: usePaginationFragment,
|
|
127
153
|
usePreloadedQuery: usePreloadedQuery,
|
|
128
154
|
useRefetchableFragment: useRefetchableFragment,
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* Determine if a given value is an object that implements the `Environment`
|
|
16
16
|
* interface defined in `RelayEnvironmentTypes`.
|
|
17
17
|
*/
|
|
18
|
-
function isRelayEnvironment(environment:
|
|
18
|
+
function isRelayEnvironment(environment: unknown): boolean {
|
|
19
19
|
return (
|
|
20
20
|
typeof environment === 'object' &&
|
|
21
21
|
environment !== null &&
|
|
@@ -30,7 +30,7 @@ const Scheduler = require('scheduler/unstable_mock');
|
|
|
30
30
|
interface Thenable<+R> {
|
|
31
31
|
then<U>(
|
|
32
32
|
onFulfill: (value: R) => void | Thenable<U> | U,
|
|
33
|
-
onReject: (error:
|
|
33
|
+
onReject: (error: unknown) => void | Thenable<U> | U,
|
|
34
34
|
): void | Thenable<U>;
|
|
35
35
|
}
|
|
36
36
|
|
package/legacy.js
CHANGED
package/legacy.js.flow
CHANGED
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
|
|
12
12
|
'use strict';
|
|
13
13
|
|
|
14
|
+
/* eslint relay-internal/esm-compatible-cjs: error */
|
|
15
|
+
|
|
14
16
|
const ReactRelayContext = require('./ReactRelayContext');
|
|
15
17
|
const ReactRelayFragmentContainer = require('./ReactRelayFragmentContainer');
|
|
16
18
|
const ReactRelayLocalQueryRenderer = require('./ReactRelayLocalQueryRenderer');
|
|
@@ -47,28 +49,45 @@ export type {
|
|
|
47
49
|
FetchPolicy,
|
|
48
50
|
} from 'relay-runtime';
|
|
49
51
|
|
|
52
|
+
const {
|
|
53
|
+
ConnectionHandler,
|
|
54
|
+
MutationTypes,
|
|
55
|
+
RangeOperations,
|
|
56
|
+
applyOptimisticMutation,
|
|
57
|
+
commitLocalUpdate,
|
|
58
|
+
commitMutation,
|
|
59
|
+
fetchQuery_DEPRECATED,
|
|
60
|
+
graphql,
|
|
61
|
+
readInlineData,
|
|
62
|
+
requestSubscription,
|
|
63
|
+
} = RelayRuntime;
|
|
64
|
+
|
|
65
|
+
const createFragmentContainer = ReactRelayFragmentContainer.createContainer;
|
|
66
|
+
const createPaginationContainer = ReactRelayPaginationContainer.createContainer;
|
|
67
|
+
const createRefetchContainer = ReactRelayRefetchContainer.createContainer;
|
|
68
|
+
|
|
50
69
|
/**
|
|
51
70
|
* Legacy react-relay exports.
|
|
52
71
|
* Should prefer using interface defined in ./hooks.js
|
|
53
72
|
*/
|
|
54
73
|
module.exports = {
|
|
55
|
-
ConnectionHandler
|
|
74
|
+
ConnectionHandler,
|
|
56
75
|
QueryRenderer: ReactRelayQueryRenderer,
|
|
57
76
|
LocalQueryRenderer: ReactRelayLocalQueryRenderer,
|
|
58
77
|
|
|
59
|
-
MutationTypes
|
|
60
|
-
RangeOperations
|
|
78
|
+
MutationTypes,
|
|
79
|
+
RangeOperations,
|
|
61
80
|
|
|
62
81
|
ReactRelayContext,
|
|
63
82
|
|
|
64
|
-
applyOptimisticMutation
|
|
65
|
-
commitLocalUpdate
|
|
66
|
-
commitMutation
|
|
67
|
-
createFragmentContainer
|
|
68
|
-
createPaginationContainer
|
|
69
|
-
createRefetchContainer
|
|
70
|
-
fetchQuery_DEPRECATED
|
|
71
|
-
graphql
|
|
72
|
-
readInlineData
|
|
73
|
-
requestSubscription
|
|
83
|
+
applyOptimisticMutation,
|
|
84
|
+
commitLocalUpdate,
|
|
85
|
+
commitMutation,
|
|
86
|
+
createFragmentContainer,
|
|
87
|
+
createPaginationContainer,
|
|
88
|
+
createRefetchContainer,
|
|
89
|
+
fetchQuery_DEPRECATED,
|
|
90
|
+
graphql,
|
|
91
|
+
readInlineData,
|
|
92
|
+
requestSubscription,
|
|
74
93
|
};
|
|
@@ -59,8 +59,8 @@ function createContainerWithFragments(Component, fragments) {
|
|
|
59
59
|
resolver = createFragmentSpecResolver(relayContext, containerName, fragments, nextProps, rootIsQueryRenderer);
|
|
60
60
|
return {
|
|
61
61
|
data: resolver.resolve(),
|
|
62
|
-
prevPropsContext: relayContext,
|
|
63
62
|
prevProps: nextProps,
|
|
63
|
+
prevPropsContext: relayContext,
|
|
64
64
|
relayProp: getRelayProp(relayContext.environment),
|
|
65
65
|
resolver: resolver
|
|
66
66
|
};
|
|
@@ -77,8 +77,8 @@ function findConnectionMetadata(fragments) {
|
|
|
77
77
|
}
|
|
78
78
|
function toObserver(observerOrCallback) {
|
|
79
79
|
return typeof observerOrCallback === 'function' ? {
|
|
80
|
-
error: observerOrCallback,
|
|
81
80
|
complete: observerOrCallback,
|
|
81
|
+
error: observerOrCallback,
|
|
82
82
|
unsubscribe: function unsubscribe(subscription) {
|
|
83
83
|
typeof observerOrCallback === 'function' && observerOrCallback();
|
|
84
84
|
}
|
|
@@ -173,9 +173,9 @@ function createContainerWithFragments(Component, fragments, connectionConfig) {
|
|
|
173
173
|
_this._resolver = createFragmentSpecResolver(relayContext, containerName, fragments, props, rootIsQueryRenderer, _this._handleFragmentDataUpdate);
|
|
174
174
|
}
|
|
175
175
|
_this.state = {
|
|
176
|
+
contextForChildren: relayContext,
|
|
176
177
|
data: _this._resolver.resolve(),
|
|
177
178
|
prevContext: relayContext,
|
|
178
|
-
contextForChildren: relayContext,
|
|
179
179
|
relayProp: _this._buildRelayProp(relayContext),
|
|
180
180
|
resolverGeneration: 0
|
|
181
181
|
};
|
|
@@ -217,8 +217,8 @@ function createContainerWithFragments(Component, fragments, connectionConfig) {
|
|
|
217
217
|
}
|
|
218
218
|
this.setState(function (prevState) {
|
|
219
219
|
return {
|
|
220
|
-
prevContext: relayContext,
|
|
221
220
|
contextForChildren: relayContext,
|
|
221
|
+
prevContext: relayContext,
|
|
222
222
|
relayProp: _this2._buildRelayProp(relayContext),
|
|
223
223
|
resolverGeneration: prevState.resolverGeneration + 1
|
|
224
224
|
};
|
|
@@ -258,11 +258,11 @@ function createContainerWithFragments(Component, fragments, connectionConfig) {
|
|
|
258
258
|
};
|
|
259
259
|
_proto._buildRelayProp = function _buildRelayProp(relayContext) {
|
|
260
260
|
return {
|
|
261
|
+
environment: relayContext.environment,
|
|
261
262
|
hasMore: this._hasMore,
|
|
262
263
|
isLoading: this._isLoading,
|
|
263
264
|
loadMore: this._loadMore,
|
|
264
|
-
refetchConnection: this._refetchConnection
|
|
265
|
-
environment: relayContext.environment
|
|
265
|
+
refetchConnection: this._refetchConnection
|
|
266
266
|
};
|
|
267
267
|
};
|
|
268
268
|
_proto._rerenderIfStoreHasChanged = function _rerenderIfStoreHasChanged() {
|
|
@@ -373,10 +373,10 @@ function createContainerWithFragments(Component, fragments, connectionConfig) {
|
|
|
373
373
|
var nextData = _this3._resolver.resolve();
|
|
374
374
|
if (!areEqual(prevData, nextData)) {
|
|
375
375
|
_this3.setState({
|
|
376
|
-
data: nextData,
|
|
377
376
|
contextForChildren: {
|
|
378
377
|
environment: _this3.props.__relayContext.environment
|
|
379
|
-
}
|
|
378
|
+
},
|
|
379
|
+
data: nextData
|
|
380
380
|
}, complete);
|
|
381
381
|
} else {
|
|
382
382
|
complete();
|
|
@@ -401,8 +401,8 @@ function createContainerWithFragments(Component, fragments, connectionConfig) {
|
|
|
401
401
|
});
|
|
402
402
|
});
|
|
403
403
|
})["do"]({
|
|
404
|
-
error: cleanup,
|
|
405
404
|
complete: cleanup,
|
|
405
|
+
error: cleanup,
|
|
406
406
|
unsubscribe: cleanup
|
|
407
407
|
}).subscribe(observer || {});
|
|
408
408
|
this._refetchSubscription = this._isARequestInFlight ? refetchSubscription : null;
|
|
@@ -63,8 +63,8 @@ function createContainerWithFragments(Component, fragments, taggedNode) {
|
|
|
63
63
|
cacheConfig.metadata = options === null || options === void 0 ? void 0 : options.metadata;
|
|
64
64
|
}
|
|
65
65
|
var observer = typeof observerOrCallback === 'function' ? {
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
error: observerOrCallback,
|
|
67
|
+
next: observerOrCallback
|
|
68
68
|
} : observerOrCallback || {};
|
|
69
69
|
var query = getRequest(taggedNode);
|
|
70
70
|
var operation = createOperationDescriptor(query, fetchVariables, cacheConfig);
|
|
@@ -76,10 +76,10 @@ function createContainerWithFragments(Component, fragments, taggedNode) {
|
|
|
76
76
|
_this.state.resolver.setVariables(fragmentVariables, operation.request.node);
|
|
77
77
|
_this.setState(function (latestState) {
|
|
78
78
|
return {
|
|
79
|
-
data: latestState.resolver.resolve(),
|
|
80
79
|
contextForChildren: {
|
|
81
80
|
environment: _this.props.__relayContext.environment
|
|
82
|
-
}
|
|
81
|
+
},
|
|
82
|
+
data: latestState.resolver.resolve()
|
|
83
83
|
};
|
|
84
84
|
}, function () {
|
|
85
85
|
observer.next && observer.next();
|
|
@@ -98,10 +98,10 @@ function createContainerWithFragments(Component, fragments, taggedNode) {
|
|
|
98
98
|
return Observable.create(function (sink) {
|
|
99
99
|
return _this.setState(function (latestState) {
|
|
100
100
|
return {
|
|
101
|
-
data: latestState.resolver.resolve(),
|
|
102
101
|
contextForChildren: {
|
|
103
102
|
environment: _this.props.__relayContext.environment
|
|
104
|
-
}
|
|
103
|
+
},
|
|
104
|
+
data: latestState.resolver.resolve()
|
|
105
105
|
};
|
|
106
106
|
}, function () {
|
|
107
107
|
sink.next();
|
|
@@ -129,11 +129,11 @@ function createContainerWithFragments(Component, fragments, taggedNode) {
|
|
|
129
129
|
_this._refetchSubscription = null;
|
|
130
130
|
var resolver = createFragmentSpecResolver(relayContext, containerName, fragments, props, rootIsQueryRenderer);
|
|
131
131
|
_this.state = {
|
|
132
|
+
contextForChildren: relayContext,
|
|
132
133
|
data: resolver.resolve(),
|
|
133
134
|
localVariables: null,
|
|
134
135
|
prevProps: props,
|
|
135
136
|
prevPropsContext: relayContext,
|
|
136
|
-
contextForChildren: relayContext,
|
|
137
137
|
relayProp: getRelayProp(relayContext.environment, _this._refetch),
|
|
138
138
|
resolver: resolver
|
|
139
139
|
};
|
|
@@ -168,11 +168,11 @@ function createContainerWithFragments(Component, fragments, taggedNode) {
|
|
|
168
168
|
if (prevState.prevPropsContext.environment !== relayContext.environment || !areEqual(prevRootVariables, nextRootVariables) || !areEqual(prevIDs, nextIDs)) {
|
|
169
169
|
resolver = createFragmentSpecResolver(relayContext, containerName, fragments, nextProps, rootIsQueryRenderer);
|
|
170
170
|
return {
|
|
171
|
+
contextForChildren: relayContext,
|
|
171
172
|
data: resolver.resolve(),
|
|
172
173
|
localVariables: null,
|
|
173
174
|
prevProps: nextProps,
|
|
174
175
|
prevPropsContext: relayContext,
|
|
175
|
-
contextForChildren: relayContext,
|
|
176
176
|
relayProp: getRelayProp(relayContext.environment, prevState.relayProp.refetch),
|
|
177
177
|
resolver: resolver
|
|
178
178
|
};
|
|
@@ -63,12 +63,12 @@ var ReactRelayTestMocker = /*#__PURE__*/function () {
|
|
|
63
63
|
return typeof payload === 'function' ? payload(strippedVars) : payload;
|
|
64
64
|
}
|
|
65
65
|
_this._pendingFetches.push({
|
|
66
|
-
ident: ident,
|
|
67
66
|
cacheConfig: cacheConfig,
|
|
68
67
|
deferred: {
|
|
69
|
-
|
|
70
|
-
|
|
68
|
+
reject: reject,
|
|
69
|
+
resolve: resolve
|
|
71
70
|
},
|
|
71
|
+
ident: ident,
|
|
72
72
|
request: request,
|
|
73
73
|
variables: strippedVars
|
|
74
74
|
});
|
|
@@ -94,10 +94,10 @@ var ReactRelayTestMocker = /*#__PURE__*/function () {
|
|
|
94
94
|
deferred.reject(payload.error);
|
|
95
95
|
};
|
|
96
96
|
env.mock = {
|
|
97
|
+
fetch: fetch,
|
|
97
98
|
isLoading: isLoading,
|
|
98
99
|
rejectQuery: rejectQuery,
|
|
99
|
-
resolveRawQuery: resolveRawQuery
|
|
100
|
-
fetch: fetch
|
|
100
|
+
resolveRawQuery: resolveRawQuery
|
|
101
101
|
};
|
|
102
102
|
env.hasMockedNetwork = true;
|
|
103
103
|
env.__setNet(Network.create(fetch));
|
package/lib/hooks.js
CHANGED
|
@@ -10,6 +10,7 @@ var useEntryPointLoader = require('./relay-hooks/useEntryPointLoader');
|
|
|
10
10
|
var useFragment = require('./relay-hooks/useFragment');
|
|
11
11
|
var useLazyLoadQuery = require('./relay-hooks/useLazyLoadQuery');
|
|
12
12
|
var useMutation = require('./relay-hooks/useMutation');
|
|
13
|
+
var useMutationAction_EXPERIMENTAL = require('./relay-hooks/useMutationAction_EXPERIMENTAL');
|
|
13
14
|
var usePaginationFragment = require('./relay-hooks/usePaginationFragment');
|
|
14
15
|
var usePreloadedQuery = require('./relay-hooks/usePreloadedQuery');
|
|
15
16
|
var useQueryLoader = require('./relay-hooks/useQueryLoader');
|
|
@@ -18,18 +19,26 @@ var useRelayEnvironment = require('./relay-hooks/useRelayEnvironment');
|
|
|
18
19
|
var useSubscribeToInvalidationState = require('./relay-hooks/useSubscribeToInvalidationState');
|
|
19
20
|
var useSubscription = require('./relay-hooks/useSubscription');
|
|
20
21
|
var RelayRuntime = require('relay-runtime');
|
|
22
|
+
var ConnectionHandler = RelayRuntime.ConnectionHandler,
|
|
23
|
+
applyOptimisticMutation = RelayRuntime.applyOptimisticMutation,
|
|
24
|
+
commitLocalUpdate = RelayRuntime.commitLocalUpdate,
|
|
25
|
+
commitMutation = RelayRuntime.commitMutation,
|
|
26
|
+
graphql = RelayRuntime.graphql,
|
|
27
|
+
readInlineData = RelayRuntime.readInlineData,
|
|
28
|
+
requestSubscription = RelayRuntime.requestSubscription,
|
|
29
|
+
fetchQuery = RelayRuntime.fetchQuery;
|
|
21
30
|
module.exports = {
|
|
22
|
-
ConnectionHandler:
|
|
23
|
-
applyOptimisticMutation:
|
|
24
|
-
commitLocalUpdate:
|
|
25
|
-
commitMutation:
|
|
26
|
-
graphql:
|
|
27
|
-
readInlineData:
|
|
28
|
-
requestSubscription:
|
|
31
|
+
ConnectionHandler: ConnectionHandler,
|
|
32
|
+
applyOptimisticMutation: applyOptimisticMutation,
|
|
33
|
+
commitLocalUpdate: commitLocalUpdate,
|
|
34
|
+
commitMutation: commitMutation,
|
|
35
|
+
graphql: graphql,
|
|
36
|
+
readInlineData: readInlineData,
|
|
37
|
+
requestSubscription: requestSubscription,
|
|
29
38
|
EntryPointContainer: EntryPointContainer,
|
|
30
39
|
RelayEnvironmentProvider: RelayEnvironmentProvider,
|
|
31
40
|
ProfilerContext: ProfilerContext,
|
|
32
|
-
fetchQuery:
|
|
41
|
+
fetchQuery: fetchQuery,
|
|
33
42
|
loadQuery: loadQuery,
|
|
34
43
|
loadEntryPoint: loadEntryPoint,
|
|
35
44
|
useFragment: useFragment,
|
|
@@ -37,6 +46,7 @@ module.exports = {
|
|
|
37
46
|
useEntryPointLoader: useEntryPointLoader,
|
|
38
47
|
useQueryLoader: useQueryLoader,
|
|
39
48
|
useMutation: useMutation,
|
|
49
|
+
useMutationAction_EXPERIMENTAL: useMutationAction_EXPERIMENTAL,
|
|
40
50
|
usePaginationFragment: usePaginationFragment,
|
|
41
51
|
usePreloadedQuery: usePreloadedQuery,
|
|
42
52
|
useRefetchableFragment: useRefetchableFragment,
|
package/lib/index.js
CHANGED
|
@@ -17,6 +17,7 @@ var useEntryPointLoader = require('./relay-hooks/useEntryPointLoader');
|
|
|
17
17
|
var useFragment = require('./relay-hooks/useFragment');
|
|
18
18
|
var useLazyLoadQuery = require('./relay-hooks/useLazyLoadQuery');
|
|
19
19
|
var useMutation = require('./relay-hooks/useMutation');
|
|
20
|
+
var useMutationAction_EXPERIMENTAL = require('./relay-hooks/useMutationAction_EXPERIMENTAL');
|
|
20
21
|
var usePaginationFragment = require('./relay-hooks/usePaginationFragment');
|
|
21
22
|
var usePrefetchableForwardPaginationFragment = require('./relay-hooks/usePrefetchableForwardPaginationFragment');
|
|
22
23
|
var usePreloadedQuery = require('./relay-hooks/usePreloadedQuery');
|
|
@@ -26,27 +27,41 @@ var useRelayEnvironment = require('./relay-hooks/useRelayEnvironment');
|
|
|
26
27
|
var useSubscribeToInvalidationState = require('./relay-hooks/useSubscribeToInvalidationState');
|
|
27
28
|
var useSubscription = require('./relay-hooks/useSubscription');
|
|
28
29
|
var RelayRuntime = require('relay-runtime');
|
|
30
|
+
var ConnectionHandler = RelayRuntime.ConnectionHandler,
|
|
31
|
+
MutationTypes = RelayRuntime.MutationTypes,
|
|
32
|
+
RangeOperations = RelayRuntime.RangeOperations,
|
|
33
|
+
applyOptimisticMutation = RelayRuntime.applyOptimisticMutation,
|
|
34
|
+
commitLocalUpdate = RelayRuntime.commitLocalUpdate,
|
|
35
|
+
commitMutation = RelayRuntime.commitMutation,
|
|
36
|
+
fetchQuery_DEPRECATED = RelayRuntime.fetchQuery_DEPRECATED,
|
|
37
|
+
graphql = RelayRuntime.graphql,
|
|
38
|
+
readInlineData = RelayRuntime.readInlineData,
|
|
39
|
+
requestSubscription = RelayRuntime.requestSubscription,
|
|
40
|
+
fetchQuery = RelayRuntime.fetchQuery;
|
|
41
|
+
var createFragmentContainer = ReactRelayFragmentContainer.createContainer;
|
|
42
|
+
var createPaginationContainer = ReactRelayPaginationContainer.createContainer;
|
|
43
|
+
var createRefetchContainer = ReactRelayRefetchContainer.createContainer;
|
|
29
44
|
module.exports = {
|
|
30
|
-
ConnectionHandler:
|
|
45
|
+
ConnectionHandler: ConnectionHandler,
|
|
31
46
|
QueryRenderer: ReactRelayQueryRenderer,
|
|
32
47
|
LocalQueryRenderer: ReactRelayLocalQueryRenderer,
|
|
33
|
-
MutationTypes:
|
|
34
|
-
RangeOperations:
|
|
48
|
+
MutationTypes: MutationTypes,
|
|
49
|
+
RangeOperations: RangeOperations,
|
|
35
50
|
ReactRelayContext: ReactRelayContext,
|
|
36
|
-
applyOptimisticMutation:
|
|
37
|
-
commitLocalUpdate:
|
|
38
|
-
commitMutation:
|
|
39
|
-
createFragmentContainer:
|
|
40
|
-
createPaginationContainer:
|
|
41
|
-
createRefetchContainer:
|
|
42
|
-
fetchQuery_DEPRECATED:
|
|
43
|
-
graphql:
|
|
44
|
-
readInlineData:
|
|
45
|
-
requestSubscription:
|
|
51
|
+
applyOptimisticMutation: applyOptimisticMutation,
|
|
52
|
+
commitLocalUpdate: commitLocalUpdate,
|
|
53
|
+
commitMutation: commitMutation,
|
|
54
|
+
createFragmentContainer: createFragmentContainer,
|
|
55
|
+
createPaginationContainer: createPaginationContainer,
|
|
56
|
+
createRefetchContainer: createRefetchContainer,
|
|
57
|
+
fetchQuery_DEPRECATED: fetchQuery_DEPRECATED,
|
|
58
|
+
graphql: graphql,
|
|
59
|
+
readInlineData: readInlineData,
|
|
60
|
+
requestSubscription: requestSubscription,
|
|
46
61
|
EntryPointContainer: EntryPointContainer,
|
|
47
62
|
RelayEnvironmentProvider: RelayEnvironmentProvider,
|
|
48
63
|
ProfilerContext: ProfilerContext,
|
|
49
|
-
fetchQuery:
|
|
64
|
+
fetchQuery: fetchQuery,
|
|
50
65
|
loadQuery: loadQuery,
|
|
51
66
|
loadEntryPoint: loadEntryPoint,
|
|
52
67
|
useClientQuery: useClientQuery,
|
|
@@ -55,6 +70,7 @@ module.exports = {
|
|
|
55
70
|
useEntryPointLoader: useEntryPointLoader,
|
|
56
71
|
useQueryLoader: useQueryLoader,
|
|
57
72
|
useMutation: useMutation,
|
|
73
|
+
useMutationAction_EXPERIMENTAL: useMutationAction_EXPERIMENTAL,
|
|
58
74
|
usePaginationFragment: usePaginationFragment,
|
|
59
75
|
usePreloadedQuery: usePreloadedQuery,
|
|
60
76
|
useRefetchableFragment: useRefetchableFragment,
|