react-relay 14.1.0 → 16.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/ReactRelayContainerUtils.js.flow +1 -0
- package/ReactRelayContext.js +1 -1
- package/ReactRelayContext.js.flow +1 -0
- package/ReactRelayFragmentContainer.js.flow +6 -2
- package/ReactRelayFragmentMockRenderer.js.flow +1 -0
- package/ReactRelayLocalQueryRenderer.js.flow +5 -3
- package/ReactRelayPaginationContainer.js.flow +21 -12
- package/ReactRelayQueryFetcher.js.flow +20 -10
- package/ReactRelayQueryRenderer.js.flow +15 -11
- package/ReactRelayQueryRendererContext.js.flow +1 -0
- package/ReactRelayRefetchContainer.js.flow +9 -5
- package/ReactRelayTestMocker.js.flow +3 -1
- package/ReactRelayTypes.js.flow +2 -0
- package/RelayContext.js.flow +1 -0
- package/__flowtests__/ReactRelayFragmentContainer-flowtest.js.flow +2 -1
- package/__flowtests__/ReactRelayPaginationContainer-flowtest.js.flow +1 -0
- package/__flowtests__/ReactRelayRefetchContainer-flowtest.js.flow +1 -0
- package/__flowtests__/RelayModern-flowtest.js.flow +1 -0
- package/__flowtests__/RelayModernFlowtest_badref.graphql.js.flow +1 -0
- package/__flowtests__/RelayModernFlowtest_notref.graphql.js.flow +1 -0
- package/__flowtests__/RelayModernFlowtest_user.graphql.js.flow +1 -0
- package/__flowtests__/RelayModernFlowtest_users.graphql.js.flow +1 -0
- package/__flowtests__/__generated__/ReactRelayFragmentContainerFlowtest_viewer.graphql.js.flow +3 -1
- package/__flowtests__/__generated__/ReactRelayFragmentContainerFlowtest_viewer2.graphql.js.flow +3 -1
- package/__flowtests__/__generated__/ReactRelayPaginationContainerFlowtestQuery.graphql.js.flow +4 -2
- package/__flowtests__/__generated__/ReactRelayPaginationContainerFlowtest_viewer.graphql.js.flow +3 -1
- package/__flowtests__/__generated__/ReactRelayRefetchContainerFlowtestQuery.graphql.js.flow +4 -2
- package/__flowtests__/__generated__/ReactRelayRefetchContainerFlowtest_viewer.graphql.js.flow +3 -1
- package/__flowtests__/__generated__/RelayModernFlowtest_badref.graphql.js.flow +4 -2
- package/__flowtests__/__generated__/RelayModernFlowtest_notref.graphql.js.flow +4 -2
- package/__flowtests__/__generated__/RelayModernFlowtest_user.graphql.js.flow +3 -1
- package/__flowtests__/__generated__/RelayModernFlowtest_users.graphql.js.flow +3 -1
- package/assertFragmentMap.js.flow +1 -0
- package/buildReactRelayContainer.js.flow +10 -6
- package/getRootVariablesForFragments.js.flow +1 -1
- package/hooks.js +1 -1
- package/hooks.js.flow +4 -0
- package/index.js +1 -1
- package/index.js.flow +4 -0
- package/isRelayEnvironment.js.flow +1 -0
- package/jest-react/enqueueTask.js.flow +1 -1
- package/jest-react/index.js.flow +1 -1
- package/jest-react/internalAct.js.flow +1 -1
- package/legacy.js +1 -1
- package/legacy.js.flow +1 -0
- package/lib/ReactRelayContainerUtils.js +0 -11
- package/lib/ReactRelayContext.js +1 -12
- package/lib/ReactRelayFragmentContainer.js +23 -122
- package/lib/ReactRelayFragmentMockRenderer.js +0 -12
- package/lib/ReactRelayLocalQueryRenderer.js +12 -41
- package/lib/ReactRelayPaginationContainer.js +45 -341
- package/lib/ReactRelayQueryFetcher.js +36 -111
- package/lib/ReactRelayQueryRenderer.js +29 -137
- package/lib/ReactRelayQueryRendererContext.js +0 -10
- package/lib/ReactRelayRefetchContainer.js +33 -166
- package/lib/ReactRelayTestMocker.js +18 -128
- package/lib/ReactRelayTypes.js +0 -9
- package/lib/RelayContext.js +0 -23
- package/lib/assertFragmentMap.js +0 -16
- package/lib/buildReactRelayContainer.js +7 -41
- package/lib/getRootVariablesForFragments.js +2 -19
- package/lib/hooks.js +3 -30
- package/lib/index.js +3 -39
- package/lib/isRelayEnvironment.js +1 -16
- package/lib/jest-react/enqueueTask.js +1 -25
- package/lib/jest-react/index.js +0 -1
- package/lib/jest-react/internalAct.js +2 -51
- package/lib/legacy.js +0 -20
- package/lib/multi-actor/ActorChange.js +0 -14
- package/lib/multi-actor/index.js +0 -10
- package/lib/multi-actor/useRelayActorEnvironment.js +2 -16
- package/lib/relay-hooks/EntryPointContainer.react.js +7 -23
- package/lib/relay-hooks/EntryPointTypes.flow.js +0 -10
- package/lib/relay-hooks/FragmentResource.js +130 -280
- package/lib/relay-hooks/HooksImplementation.js +0 -14
- package/lib/relay-hooks/InternalLogger.js +0 -11
- package/lib/relay-hooks/LRUCache.js +0 -39
- package/lib/relay-hooks/LazyLoadEntryPointContainer_DEPRECATED.react.js +27 -65
- package/lib/relay-hooks/MatchContainer.js +9 -111
- package/lib/relay-hooks/NestedRelayEntryPointBuilderUtils.js +9 -0
- package/lib/relay-hooks/ProfilerContext.js +0 -14
- package/lib/relay-hooks/QueryResource.js +14 -149
- package/lib/relay-hooks/RelayEnvironmentProvider.js +3 -17
- package/lib/relay-hooks/SuspenseResource.js +2 -59
- package/lib/relay-hooks/loadEntryPoint.js +10 -45
- package/lib/relay-hooks/loadQuery.js +29 -169
- package/lib/relay-hooks/preloadQuery_DEPRECATED.js +8 -58
- package/lib/relay-hooks/prepareEntryPoint_DEPRECATED.js +6 -24
- package/lib/relay-hooks/react-cache/RelayReactCache.js +4 -20
- package/lib/relay-hooks/react-cache/getQueryResultOrFetchQuery_REACT_CACHE.js +13 -102
- package/lib/relay-hooks/react-cache/readFragmentInternal_REACT_CACHE.js +18 -75
- package/lib/relay-hooks/react-cache/useFragmentInternal_REACT_CACHE.js +79 -222
- package/lib/relay-hooks/react-cache/useFragment_REACT_CACHE.js +3 -27
- package/lib/relay-hooks/react-cache/useLazyLoadQuery_REACT_CACHE.js +11 -33
- package/lib/relay-hooks/react-cache/usePaginationFragment_REACT_CACHE.js +62 -85
- package/lib/relay-hooks/react-cache/usePreloadedQuery_REACT_CACHE.js +20 -63
- package/lib/relay-hooks/react-cache/useRefetchableFragmentInternal_REACT_CACHE.js +53 -179
- package/lib/relay-hooks/react-cache/useRefetchableFragment_REACT_CACHE.js +5 -27
- package/lib/relay-hooks/useBlockingPaginationFragment.js +58 -121
- package/lib/relay-hooks/useClientQuery.js +0 -21
- package/lib/relay-hooks/useEntryPointLoader.js +12 -100
- package/lib/relay-hooks/useFetchTrackingRef.js +6 -33
- package/lib/relay-hooks/useFragment.js +5 -32
- package/lib/relay-hooks/useFragmentNode.js +14 -55
- package/lib/relay-hooks/useIsMountedRef.js +2 -14
- package/lib/relay-hooks/useIsOperationNodeActive.js +6 -29
- package/lib/relay-hooks/useIsParentQueryActive.js +1 -15
- package/lib/relay-hooks/useLazyLoadQuery.js +2 -23
- package/lib/relay-hooks/useLazyLoadQueryNode.js +18 -63
- package/lib/relay-hooks/useLoadMoreFunction.js +44 -100
- package/lib/relay-hooks/useMemoOperationDescriptor.js +4 -23
- package/lib/relay-hooks/useMemoVariables.js +8 -43
- package/lib/relay-hooks/useMutation.js +6 -34
- package/lib/relay-hooks/usePaginationFragment.js +49 -89
- package/lib/relay-hooks/usePreloadedQuery.js +10 -54
- package/lib/relay-hooks/useQueryLoader.js +18 -116
- package/lib/relay-hooks/useRefetchableFragment.js +4 -30
- package/lib/relay-hooks/useRefetchableFragmentNode.js +58 -184
- package/lib/relay-hooks/useRelayEnvironment.js +2 -16
- package/lib/relay-hooks/useStaticFragmentNodeWarning.js +2 -20
- package/lib/relay-hooks/useSubscribeToInvalidationState.js +3 -28
- package/lib/relay-hooks/useSubscription.js +3 -22
- package/lib/relay-hooks/useUnsafeRef_DEPRECATED.js +12 -0
- package/multi-actor/ActorChange.js.flow +1 -1
- package/multi-actor/index.js.flow +1 -1
- package/multi-actor/useRelayActorEnvironment.js.flow +2 -2
- package/package.json +2 -2
- package/react-relay-hooks.js +2 -2
- package/react-relay-hooks.min.js +2 -2
- package/react-relay-legacy.js +2 -2
- package/react-relay-legacy.min.js +2 -2
- package/react-relay.js +2 -2
- package/react-relay.min.js +2 -2
- package/relay-hooks/EntryPointContainer.react.js.flow +6 -1
- package/relay-hooks/EntryPointTypes.flow.js.flow +23 -20
- package/relay-hooks/FragmentResource.js.flow +148 -34
- package/relay-hooks/HooksImplementation.js.flow +1 -1
- package/relay-hooks/InternalLogger.js.flow +1 -1
- package/relay-hooks/LRUCache.js.flow +1 -1
- package/relay-hooks/LazyLoadEntryPointContainer_DEPRECATED.react.js.flow +19 -10
- package/relay-hooks/MatchContainer.js.flow +1 -1
- package/relay-hooks/NestedRelayEntryPointBuilderUtils.js.flow +51 -0
- package/relay-hooks/ProfilerContext.js.flow +1 -1
- package/relay-hooks/QueryResource.js.flow +25 -5
- package/relay-hooks/RelayEnvironmentProvider.js.flow +2 -2
- package/relay-hooks/SuspenseResource.js.flow +1 -1
- package/relay-hooks/__flowtests__/EntryPointTypes/EntryPointElementConfig-flowtest.js.flow +3 -1
- package/relay-hooks/__flowtests__/EntryPointTypes/NestedEntrypoints-flowtest.js.flow +9 -7
- package/relay-hooks/__flowtests__/__generated__/useFragmentFlowtest_user.graphql.js.flow +3 -1
- package/relay-hooks/__flowtests__/__generated__/useFragmentFlowtest_users.graphql.js.flow +3 -1
- package/relay-hooks/__flowtests__/useBlockingPaginationFragment-flowtest.js.flow +40 -33
- package/relay-hooks/__flowtests__/useFragment-flowtest.js.flow +1 -1
- package/relay-hooks/__flowtests__/usePaginationFragment-flowtest.js.flow +38 -32
- package/relay-hooks/__flowtests__/useRefetchableFragment-flowtest.js.flow +20 -18
- package/relay-hooks/__flowtests__/utils.js.flow +13 -2
- package/relay-hooks/loadEntryPoint.js.flow +15 -8
- package/relay-hooks/loadQuery.js.flow +32 -8
- package/relay-hooks/preloadQuery_DEPRECATED.js.flow +5 -6
- package/relay-hooks/prepareEntryPoint_DEPRECATED.js.flow +17 -10
- package/relay-hooks/react-cache/RelayReactCache.js.flow +1 -1
- package/relay-hooks/react-cache/getQueryResultOrFetchQuery_REACT_CACHE.js.flow +4 -4
- package/relay-hooks/react-cache/readFragmentInternal_REACT_CACHE.js.flow +5 -4
- package/relay-hooks/react-cache/useFragmentInternal_REACT_CACHE.js.flow +32 -14
- package/relay-hooks/react-cache/useFragment_REACT_CACHE.js.flow +4 -10
- package/relay-hooks/react-cache/useLazyLoadQuery_REACT_CACHE.js.flow +1 -1
- package/relay-hooks/react-cache/usePaginationFragment_REACT_CACHE.js.flow +39 -49
- package/relay-hooks/react-cache/usePreloadedQuery_REACT_CACHE.js.flow +1 -2
- package/relay-hooks/react-cache/useRefetchableFragmentInternal_REACT_CACHE.js.flow +29 -16
- package/relay-hooks/react-cache/useRefetchableFragment_REACT_CACHE.js.flow +17 -33
- package/relay-hooks/useBlockingPaginationFragment.js.flow +85 -58
- package/relay-hooks/useClientQuery.js.flow +3 -3
- package/relay-hooks/useEntryPointLoader.js.flow +10 -6
- package/relay-hooks/useFetchTrackingRef.js.flow +5 -4
- package/relay-hooks/useFragment.js.flow +2 -2
- package/relay-hooks/useFragmentNode.js.flow +7 -6
- package/relay-hooks/useIsMountedRef.js.flow +1 -1
- package/relay-hooks/useIsOperationNodeActive.js.flow +1 -1
- package/relay-hooks/useIsParentQueryActive.js.flow +1 -1
- package/relay-hooks/useLazyLoadQuery.js.flow +2 -2
- package/relay-hooks/useLazyLoadQueryNode.js.flow +2 -2
- package/relay-hooks/useLoadMoreFunction.js.flow +27 -16
- package/relay-hooks/useMemoOperationDescriptor.js.flow +3 -3
- package/relay-hooks/useMemoVariables.js.flow +13 -29
- package/relay-hooks/useMutation.js.flow +30 -13
- package/relay-hooks/usePaginationFragment.js.flow +55 -54
- package/relay-hooks/usePreloadedQuery.js.flow +47 -22
- package/relay-hooks/useQueryLoader.js.flow +78 -21
- package/relay-hooks/useRefetchableFragment.js.flow +65 -33
- package/relay-hooks/useRefetchableFragmentNode.js.flow +38 -17
- package/relay-hooks/useRelayEnvironment.js.flow +2 -2
- package/relay-hooks/useStaticFragmentNodeWarning.js.flow +3 -3
- package/relay-hooks/useSubscribeToInvalidationState.js.flow +2 -2
- package/relay-hooks/useSubscription.js.flow +1 -1
- package/relay-hooks/useUnsafeRef_DEPRECATED.js.flow +25 -0
- package/lib/readContext.js +0 -27
- package/readContext.js.flow +0 -29
package/__flowtests__/__generated__/ReactRelayRefetchContainerFlowtest_viewer.graphql.js.flow
CHANGED
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @
|
|
7
|
+
* @oncall relay
|
|
8
|
+
*
|
|
9
|
+
* @generated SignedSource<<6f9cebfabb127ad6db1de1705f8a9764>>
|
|
8
10
|
* @flow
|
|
9
11
|
* @lightSyntaxTransform
|
|
10
12
|
* @nogrep
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @
|
|
7
|
+
* @oncall relay
|
|
8
|
+
*
|
|
9
|
+
* @generated SignedSource<<1d67fc8ab171aeb4c45cb1df2d036371>>
|
|
8
10
|
* @flow
|
|
9
11
|
* @lightSyntaxTransform
|
|
10
12
|
* @nogrep
|
|
@@ -16,7 +18,7 @@
|
|
|
16
18
|
|
|
17
19
|
/*::
|
|
18
20
|
import type { Fragment, ReaderFragment } from 'relay-runtime';
|
|
19
|
-
type RelayModernFlowtest_user$fragmentType
|
|
21
|
+
import type { RelayModernFlowtest_user$fragmentType } from "./RelayModernFlowtest_user.graphql";
|
|
20
22
|
import type { FragmentType } from "relay-runtime";
|
|
21
23
|
declare export opaque type RelayModernFlowtest_badref$fragmentType: FragmentType;
|
|
22
24
|
export type RelayModernFlowtest_badref$data = {|
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @
|
|
7
|
+
* @oncall relay
|
|
8
|
+
*
|
|
9
|
+
* @generated SignedSource<<43b1e678169a4cde5a3a2312c2dca669>>
|
|
8
10
|
* @flow
|
|
9
11
|
* @lightSyntaxTransform
|
|
10
12
|
* @nogrep
|
|
@@ -16,7 +18,7 @@
|
|
|
16
18
|
|
|
17
19
|
/*::
|
|
18
20
|
import type { Fragment, ReaderFragment } from 'relay-runtime';
|
|
19
|
-
type RelayModernFlowtest_user$fragmentType
|
|
21
|
+
import type { RelayModernFlowtest_user$fragmentType } from "./RelayModernFlowtest_user.graphql";
|
|
20
22
|
import type { FragmentType } from "relay-runtime";
|
|
21
23
|
declare export opaque type RelayModernFlowtest_notref$fragmentType: FragmentType;
|
|
22
24
|
export type RelayModernFlowtest_notref$data = {|
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @
|
|
7
|
+
* @oncall relay
|
|
8
|
+
*
|
|
9
|
+
* @generated SignedSource<<9d848fb441343089b23a4a389281bffb>>
|
|
8
10
|
* @flow
|
|
9
11
|
* @lightSyntaxTransform
|
|
10
12
|
* @nogrep
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @
|
|
7
|
+
* @oncall relay
|
|
8
|
+
*
|
|
9
|
+
* @generated SignedSource<<36c03d8fd5d95624c243a32c2b4791e4>>
|
|
8
10
|
* @flow
|
|
9
11
|
* @lightSyntaxTransform
|
|
10
12
|
* @nogrep
|
|
@@ -6,12 +6,13 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @flow
|
|
8
8
|
* @format
|
|
9
|
+
* @oncall relay
|
|
9
10
|
*/
|
|
10
11
|
|
|
11
12
|
'use strict';
|
|
12
|
-
|
|
13
|
+
|
|
13
14
|
import type {GeneratedNodeMap} from './ReactRelayTypes';
|
|
14
|
-
import type {FragmentMap} from 'relay-runtime';
|
|
15
|
+
import type {FragmentMap, ReaderFragment} from 'relay-runtime';
|
|
15
16
|
|
|
16
17
|
const assertFragmentMap = require('./assertFragmentMap');
|
|
17
18
|
const {
|
|
@@ -20,11 +21,12 @@ const {
|
|
|
20
21
|
} = require('./ReactRelayContainerUtils');
|
|
21
22
|
const ReactRelayContext = require('./ReactRelayContext');
|
|
22
23
|
const ReactRelayQueryRendererContext = require('./ReactRelayQueryRendererContext');
|
|
23
|
-
const readContext = require('./readContext');
|
|
24
24
|
const invariant = require('invariant');
|
|
25
25
|
const React = require('react');
|
|
26
26
|
const {getFragment} = require('relay-runtime');
|
|
27
27
|
|
|
28
|
+
const {useContext} = React;
|
|
29
|
+
|
|
28
30
|
type ContainerCreator = (
|
|
29
31
|
Component: React$ComponentType<any>,
|
|
30
32
|
fragments: FragmentMap,
|
|
@@ -52,9 +54,11 @@ function buildReactRelayContainer<TBase: React$ComponentType<any>>(
|
|
|
52
54
|
|
|
53
55
|
function forwardRef(
|
|
54
56
|
props: any,
|
|
55
|
-
ref:
|
|
57
|
+
ref:
|
|
58
|
+
| ((null | React$ElementRef<TBase>) => mixed)
|
|
59
|
+
| {-current: null | React$ElementRef<TBase>, ...},
|
|
56
60
|
) {
|
|
57
|
-
const context =
|
|
61
|
+
const context = useContext(ReactRelayContext);
|
|
58
62
|
invariant(
|
|
59
63
|
context != null,
|
|
60
64
|
'`%s` tried to render a context that was not valid this means that ' +
|
|
@@ -62,7 +66,7 @@ function buildReactRelayContainer<TBase: React$ComponentType<any>>(
|
|
|
62
66
|
containerName,
|
|
63
67
|
containerName,
|
|
64
68
|
);
|
|
65
|
-
const queryRendererContext =
|
|
69
|
+
const queryRendererContext = useContext(ReactRelayQueryRendererContext);
|
|
66
70
|
|
|
67
71
|
return (
|
|
68
72
|
<Container
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @flow
|
|
8
8
|
* @format
|
|
9
|
+
* @oncall relay
|
|
9
10
|
*/
|
|
10
11
|
|
|
11
12
|
'use strict';
|
|
@@ -31,7 +32,6 @@ function getRootVariablesForFragments<TProps: {...}>(
|
|
|
31
32
|
? selector.selectors[0]?.owner.variables ?? {}
|
|
32
33
|
: selector?.owner.variables ?? {};
|
|
33
34
|
rootVariables = {
|
|
34
|
-
// $FlowFixMe[exponential-spread]
|
|
35
35
|
...rootVariables,
|
|
36
36
|
...fragmentOwnerVariables,
|
|
37
37
|
};
|
package/hooks.js
CHANGED
package/hooks.js.flow
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @flow strict-local
|
|
8
8
|
* @format
|
|
9
|
+
* @oncall relay
|
|
9
10
|
*/
|
|
10
11
|
|
|
11
12
|
'use strict';
|
|
@@ -13,6 +14,7 @@
|
|
|
13
14
|
const EntryPointContainer = require('./relay-hooks/EntryPointContainer.react');
|
|
14
15
|
const loadEntryPoint = require('./relay-hooks/loadEntryPoint');
|
|
15
16
|
const {loadQuery} = require('./relay-hooks/loadQuery');
|
|
17
|
+
const ProfilerContext = require('./relay-hooks/ProfilerContext');
|
|
16
18
|
const RelayEnvironmentProvider = require('./relay-hooks/RelayEnvironmentProvider');
|
|
17
19
|
const useEntryPointLoader = require('./relay-hooks/useEntryPointLoader');
|
|
18
20
|
const useFragment = require('./relay-hooks/useFragment');
|
|
@@ -77,6 +79,8 @@ module.exports = {
|
|
|
77
79
|
EntryPointContainer: EntryPointContainer,
|
|
78
80
|
RelayEnvironmentProvider: RelayEnvironmentProvider,
|
|
79
81
|
|
|
82
|
+
ProfilerContext: ProfilerContext,
|
|
83
|
+
|
|
80
84
|
fetchQuery: RelayRuntime.fetchQuery,
|
|
81
85
|
|
|
82
86
|
loadQuery: loadQuery,
|
package/index.js
CHANGED
package/index.js.flow
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @flow strict-local
|
|
8
8
|
* @format
|
|
9
|
+
* @oncall relay
|
|
9
10
|
*/
|
|
10
11
|
|
|
11
12
|
'use strict';
|
|
@@ -19,6 +20,7 @@ const ReactRelayRefetchContainer = require('./ReactRelayRefetchContainer');
|
|
|
19
20
|
const EntryPointContainer = require('./relay-hooks/EntryPointContainer.react');
|
|
20
21
|
const loadEntryPoint = require('./relay-hooks/loadEntryPoint');
|
|
21
22
|
const {loadQuery} = require('./relay-hooks/loadQuery');
|
|
23
|
+
const ProfilerContext = require('./relay-hooks/ProfilerContext');
|
|
22
24
|
const RelayEnvironmentProvider = require('./relay-hooks/RelayEnvironmentProvider');
|
|
23
25
|
const useClientQuery = require('./relay-hooks/useClientQuery');
|
|
24
26
|
const useEntryPointLoader = require('./relay-hooks/useEntryPointLoader');
|
|
@@ -107,6 +109,8 @@ module.exports = {
|
|
|
107
109
|
EntryPointContainer: EntryPointContainer,
|
|
108
110
|
RelayEnvironmentProvider: RelayEnvironmentProvider,
|
|
109
111
|
|
|
112
|
+
ProfilerContext: ProfilerContext,
|
|
113
|
+
|
|
110
114
|
fetchQuery: RelayRuntime.fetchQuery,
|
|
111
115
|
|
|
112
116
|
loadQuery: loadQuery,
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @emails oncall+relay
|
|
8
7
|
* @format
|
|
8
|
+
* @oncall relay
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
// This file is sync'd from https://github.com/facebook/react/tree/main/packages/jest-react
|
package/jest-react/index.js.flow
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @emails oncall+relay
|
|
8
7
|
* @format
|
|
8
|
+
* @oncall relay
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
// This file is sync'd from https://github.com/facebook/react/tree/main/packages/jest-react
|
package/legacy.js
CHANGED
package/legacy.js.flow
CHANGED
|
@@ -1,22 +1,11 @@
|
|
|
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
|
-
* @format
|
|
9
|
-
*/
|
|
10
1
|
'use strict';
|
|
11
2
|
|
|
12
3
|
function getComponentName(component) {
|
|
13
4
|
return component.displayName || component.name || 'Component';
|
|
14
5
|
}
|
|
15
|
-
|
|
16
6
|
function getContainerName(Component) {
|
|
17
7
|
return 'Relay(' + getComponentName(Component) + ')';
|
|
18
8
|
}
|
|
19
|
-
|
|
20
9
|
module.exports = {
|
|
21
10
|
getComponentName: getComponentName,
|
|
22
11
|
getContainerName: getContainerName
|
package/lib/ReactRelayContext.js
CHANGED
|
@@ -1,17 +1,6 @@
|
|
|
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
|
-
* @format
|
|
9
|
-
*/
|
|
10
1
|
'use strict';
|
|
11
2
|
|
|
12
3
|
var React = require('react');
|
|
13
|
-
|
|
14
4
|
var _require = require('relay-runtime'),
|
|
15
|
-
|
|
16
|
-
|
|
5
|
+
createRelayContext = _require.__internal.createRelayContext;
|
|
17
6
|
module.exports = createRelayContext(React);
|
|
@@ -1,80 +1,42 @@
|
|
|
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
|
-
* @format
|
|
9
|
-
*/
|
|
10
1
|
'use strict';
|
|
11
2
|
|
|
12
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
|
13
|
-
|
|
14
4
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
15
|
-
|
|
16
5
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
17
|
-
|
|
18
6
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
19
|
-
|
|
20
7
|
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
|
|
21
|
-
|
|
22
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
-
|
|
24
9
|
var _excluded = ["componentRef", "__relayContext", "__rootIsQueryRenderer"];
|
|
25
|
-
|
|
26
10
|
var buildReactRelayContainer = require('./buildReactRelayContainer');
|
|
27
|
-
|
|
28
11
|
var _require = require('./ReactRelayContainerUtils'),
|
|
29
|
-
|
|
30
|
-
|
|
12
|
+
getContainerName = _require.getContainerName;
|
|
31
13
|
var _require2 = require('./RelayContext'),
|
|
32
|
-
|
|
33
|
-
|
|
14
|
+
assertRelayContext = _require2.assertRelayContext;
|
|
34
15
|
var areEqual = require("fbjs/lib/areEqual");
|
|
35
|
-
|
|
36
16
|
var React = require('react');
|
|
37
|
-
|
|
38
17
|
var _require3 = require('relay-runtime'),
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Composes a React component class, returning a new class that intercepts
|
|
45
|
-
* props, resolving them with the provided fragments and subscribing for
|
|
46
|
-
* updates.
|
|
47
|
-
*/
|
|
18
|
+
createFragmentSpecResolver = _require3.createFragmentSpecResolver,
|
|
19
|
+
getDataIDsFromObject = _require3.getDataIDsFromObject,
|
|
20
|
+
isScalarAndEqual = _require3.isScalarAndEqual;
|
|
48
21
|
function createContainerWithFragments(Component, fragments) {
|
|
49
22
|
var _class;
|
|
50
|
-
|
|
51
23
|
var containerName = getContainerName(Component);
|
|
52
24
|
return _class = /*#__PURE__*/function (_React$Component) {
|
|
53
25
|
(0, _inheritsLoose2["default"])(_class, _React$Component);
|
|
54
|
-
|
|
55
26
|
function _class(props) {
|
|
56
27
|
var _props$__rootIsQueryR, _this;
|
|
57
|
-
|
|
58
28
|
_this = _React$Component.call(this, props) || this;
|
|
59
29
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_handleFragmentDataUpdate", function () {
|
|
60
30
|
var resolverFromThisUpdate = _this.state.resolver;
|
|
61
|
-
|
|
62
31
|
_this.setState(function (updatedState) {
|
|
63
|
-
return
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
relayProp: getRelayProp(updatedState.relayProp.environment)
|
|
68
|
-
} : null
|
|
69
|
-
);
|
|
32
|
+
return resolverFromThisUpdate === updatedState.resolver ? {
|
|
33
|
+
data: updatedState.resolver.resolve(),
|
|
34
|
+
relayProp: getRelayProp(updatedState.relayProp.environment)
|
|
35
|
+
} : null;
|
|
70
36
|
});
|
|
71
37
|
});
|
|
72
38
|
var relayContext = assertRelayContext(props.__relayContext);
|
|
73
|
-
var rootIsQueryRenderer = (_props$__rootIsQueryR = props.__rootIsQueryRenderer) !== null && _props$__rootIsQueryR !== void 0 ? _props$__rootIsQueryR : false;
|
|
74
|
-
// It is possible for this render to be interrupted or aborted,
|
|
75
|
-
// In which case the subscription would cause a leak.
|
|
76
|
-
// We will add the subscription in componentDidMount().
|
|
77
|
-
|
|
39
|
+
var rootIsQueryRenderer = (_props$__rootIsQueryR = props.__rootIsQueryRenderer) !== null && _props$__rootIsQueryR !== void 0 ? _props$__rootIsQueryR : false;
|
|
78
40
|
var resolver = createFragmentSpecResolver(relayContext, containerName, fragments, props, rootIsQueryRenderer);
|
|
79
41
|
_this.state = {
|
|
80
42
|
data: resolver.resolve(),
|
|
@@ -85,34 +47,15 @@ function createContainerWithFragments(Component, fragments) {
|
|
|
85
47
|
};
|
|
86
48
|
return _this;
|
|
87
49
|
}
|
|
88
|
-
/**
|
|
89
|
-
* When new props are received, read data for the new props and subscribe
|
|
90
|
-
* for updates. Props may be the same in which case previous data and
|
|
91
|
-
* subscriptions can be reused.
|
|
92
|
-
*/
|
|
93
|
-
|
|
94
|
-
|
|
95
50
|
_class.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
|
|
96
51
|
var _nextProps$__rootIsQu;
|
|
97
|
-
|
|
98
|
-
// Any props change could impact the query, so we mirror props in state.
|
|
99
|
-
// This is an unusual pattern, but necessary for this container usecase.
|
|
100
52
|
var prevProps = prevState.prevProps;
|
|
101
53
|
var relayContext = assertRelayContext(nextProps.__relayContext);
|
|
102
54
|
var rootIsQueryRenderer = (_nextProps$__rootIsQu = nextProps.__rootIsQueryRenderer) !== null && _nextProps$__rootIsQu !== void 0 ? _nextProps$__rootIsQu : false;
|
|
103
55
|
var prevIDs = getDataIDsFromObject(fragments, prevProps);
|
|
104
56
|
var nextIDs = getDataIDsFromObject(fragments, nextProps);
|
|
105
|
-
var resolver = prevState.resolver;
|
|
106
|
-
// previously fetched data and any pending fetches no longer apply:
|
|
107
|
-
// - Existing references are on the old environment.
|
|
108
|
-
// - Existing references are based on old variables.
|
|
109
|
-
// - Pending fetches are for the previous records.
|
|
110
|
-
|
|
57
|
+
var resolver = prevState.resolver;
|
|
111
58
|
if (prevState.prevPropsContext.environment !== relayContext.environment || !areEqual(prevIDs, nextIDs)) {
|
|
112
|
-
// Do not provide a subscription/callback here.
|
|
113
|
-
// It is possible for this render to be interrupted or aborted,
|
|
114
|
-
// In which case the subscription would cause a leak.
|
|
115
|
-
// We will add the subscription in componentDidUpdate().
|
|
116
59
|
resolver = createFragmentSpecResolver(relayContext, containerName, fragments, nextProps, rootIsQueryRenderer);
|
|
117
60
|
return {
|
|
118
61
|
data: resolver.resolve(),
|
|
@@ -124,7 +67,6 @@ function createContainerWithFragments(Component, fragments) {
|
|
|
124
67
|
} else {
|
|
125
68
|
resolver.setProps(nextProps);
|
|
126
69
|
var data = resolver.resolve();
|
|
127
|
-
|
|
128
70
|
if (data !== prevState.data) {
|
|
129
71
|
return {
|
|
130
72
|
data: data,
|
|
@@ -134,43 +76,30 @@ function createContainerWithFragments(Component, fragments) {
|
|
|
134
76
|
};
|
|
135
77
|
}
|
|
136
78
|
}
|
|
137
|
-
|
|
138
79
|
return null;
|
|
139
80
|
};
|
|
140
|
-
|
|
141
81
|
var _proto = _class.prototype;
|
|
142
|
-
|
|
143
82
|
_proto.componentDidMount = function componentDidMount() {
|
|
144
83
|
this._subscribeToNewResolverAndRerenderIfStoreHasChanged();
|
|
145
84
|
};
|
|
146
|
-
|
|
147
85
|
_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
|
|
148
86
|
if (this.state.resolver !== prevState.resolver) {
|
|
149
87
|
prevState.resolver.dispose();
|
|
150
|
-
|
|
151
88
|
this._subscribeToNewResolverAndRerenderIfStoreHasChanged();
|
|
152
89
|
} else {
|
|
153
90
|
this._rerenderIfStoreHasChanged();
|
|
154
91
|
}
|
|
155
92
|
};
|
|
156
|
-
|
|
157
93
|
_proto.componentWillUnmount = function componentWillUnmount() {
|
|
158
94
|
this.state.resolver.dispose();
|
|
159
95
|
};
|
|
160
|
-
|
|
161
96
|
_proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState) {
|
|
162
|
-
// Short-circuit if any Relay-related data has changed
|
|
163
97
|
if (nextState.data !== this.state.data) {
|
|
164
98
|
return true;
|
|
165
|
-
}
|
|
166
|
-
// are scalar and equal
|
|
167
|
-
|
|
168
|
-
|
|
99
|
+
}
|
|
169
100
|
var keys = Object.keys(nextProps);
|
|
170
|
-
|
|
171
101
|
for (var ii = 0; ii < keys.length; ii++) {
|
|
172
102
|
var key = keys[ii];
|
|
173
|
-
|
|
174
103
|
if (key === '__relayContext') {
|
|
175
104
|
if (nextState.prevPropsContext.environment !== this.state.prevPropsContext.environment) {
|
|
176
105
|
return true;
|
|
@@ -181,81 +110,53 @@ function createContainerWithFragments(Component, fragments) {
|
|
|
181
110
|
}
|
|
182
111
|
}
|
|
183
112
|
}
|
|
184
|
-
|
|
185
113
|
return false;
|
|
186
|
-
}
|
|
187
|
-
/**
|
|
188
|
-
* Render new data for the existing props/context.
|
|
189
|
-
*/
|
|
190
|
-
;
|
|
191
|
-
|
|
114
|
+
};
|
|
192
115
|
_proto._rerenderIfStoreHasChanged = function _rerenderIfStoreHasChanged() {
|
|
193
116
|
var _this$state = this.state,
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
// Check for this case, even though it requires an extra store read.
|
|
197
|
-
|
|
117
|
+
data = _this$state.data,
|
|
118
|
+
resolver = _this$state.resolver;
|
|
198
119
|
var maybeNewData = resolver.resolve();
|
|
199
|
-
|
|
200
120
|
if (data !== maybeNewData) {
|
|
201
121
|
this.setState({
|
|
202
122
|
data: maybeNewData
|
|
203
123
|
});
|
|
204
124
|
}
|
|
205
125
|
};
|
|
206
|
-
|
|
207
126
|
_proto._subscribeToNewResolverAndRerenderIfStoreHasChanged = function _subscribeToNewResolverAndRerenderIfStoreHasChanged() {
|
|
208
127
|
var _this$state2 = this.state,
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
var maybeNewData = resolver.resolve();
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
resolver.setCallback(this.props, this._handleFragmentDataUpdate); // External values could change between render and commit.
|
|
215
|
-
// Check for this case, even though it requires an extra store read.
|
|
216
|
-
|
|
128
|
+
data = _this$state2.data,
|
|
129
|
+
resolver = _this$state2.resolver;
|
|
130
|
+
var maybeNewData = resolver.resolve();
|
|
131
|
+
resolver.setCallback(this.props, this._handleFragmentDataUpdate);
|
|
217
132
|
if (data !== maybeNewData) {
|
|
218
133
|
this.setState({
|
|
219
134
|
data: maybeNewData
|
|
220
135
|
});
|
|
221
136
|
}
|
|
222
137
|
};
|
|
223
|
-
|
|
224
138
|
_proto.render = function render() {
|
|
225
139
|
var _this$props = this.props,
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
140
|
+
componentRef = _this$props.componentRef,
|
|
141
|
+
__relayContext = _this$props.__relayContext,
|
|
142
|
+
__rootIsQueryRenderer = _this$props.__rootIsQueryRenderer,
|
|
143
|
+
props = (0, _objectWithoutPropertiesLoose2["default"])(_this$props, _excluded);
|
|
230
144
|
return React.createElement(Component, (0, _objectSpread2["default"])((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, props), this.state.data), {}, {
|
|
231
145
|
ref: componentRef,
|
|
232
146
|
relay: this.state.relayProp
|
|
233
147
|
}));
|
|
234
148
|
};
|
|
235
|
-
|
|
236
149
|
return _class;
|
|
237
150
|
}(React.Component), (0, _defineProperty2["default"])(_class, "displayName", containerName), _class;
|
|
238
151
|
}
|
|
239
|
-
|
|
240
152
|
function getRelayProp(environment) {
|
|
241
153
|
return {
|
|
242
154
|
environment: environment
|
|
243
155
|
};
|
|
244
156
|
}
|
|
245
|
-
/**
|
|
246
|
-
* Wrap the basic `createContainer()` function with logic to adapt to the
|
|
247
|
-
* `context.relay.environment` in which it is rendered. Specifically, the
|
|
248
|
-
* extraction of the environment-specific version of fragments in the
|
|
249
|
-
* `fragmentSpec` is memoized once per environment, rather than once per
|
|
250
|
-
* instance of the container constructed/rendered.
|
|
251
|
-
*/
|
|
252
|
-
|
|
253
|
-
|
|
254
157
|
function createContainer(Component, fragmentSpec) {
|
|
255
|
-
// $FlowFixMe[incompatible-return]
|
|
256
158
|
return buildReactRelayContainer(Component, fragmentSpec, createContainerWithFragments);
|
|
257
159
|
}
|
|
258
|
-
|
|
259
160
|
module.exports = {
|
|
260
161
|
createContainer: createContainer
|
|
261
162
|
};
|
|
@@ -1,18 +1,7 @@
|
|
|
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
|
-
* @format
|
|
9
|
-
*/
|
|
10
1
|
'use strict';
|
|
11
2
|
|
|
12
3
|
var ReactRelayContext = require('./ReactRelayContext');
|
|
13
|
-
|
|
14
4
|
var React = require('react');
|
|
15
|
-
|
|
16
5
|
function ReactRelayFragmentMockRenderer(props) {
|
|
17
6
|
return /*#__PURE__*/React.createElement(ReactRelayContext.Provider, {
|
|
18
7
|
value: {
|
|
@@ -20,5 +9,4 @@ function ReactRelayFragmentMockRenderer(props) {
|
|
|
20
9
|
}
|
|
21
10
|
}, props.render());
|
|
22
11
|
}
|
|
23
|
-
|
|
24
12
|
module.exports = ReactRelayFragmentMockRenderer;
|