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
|
@@ -41,7 +41,7 @@ hook useSubscription<TVariables, TData, TRawResponse>(
|
|
|
41
41
|
TVariables,
|
|
42
42
|
TData,
|
|
43
43
|
TRawResponse,
|
|
44
|
-
> = requestSubscriptionFn ?? (requestSubscription
|
|
44
|
+
> = requestSubscriptionFn ?? (requestSubscription as $FlowFixMe);
|
|
45
45
|
const environment = useRelayEnvironment();
|
|
46
46
|
useEffect(() => {
|
|
47
47
|
// $FlowFixMe[method-unbinding] added when improving typing for this parameters
|
|
@@ -0,0 +1,17 @@
|
|
|
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 { PreloadedQueryRef } from './rsc_EXPERIMENTAL';
|
|
9
|
+
import {GraphQLTaggedNode, OperationType} from 'relay-runtime';
|
|
10
|
+
|
|
11
|
+
export function useQueryFromServer<T extends OperationType>(
|
|
12
|
+
query: GraphQLTaggedNode,
|
|
13
|
+
queryRef: PreloadedQueryRef<T['variables'], T['response']>,
|
|
14
|
+
options?: { staleThresholdMs?: number },
|
|
15
|
+
): T['response'];
|
|
16
|
+
|
|
17
|
+
export { PreloadedQueryRef };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Relay v21.0.1
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
module.exports = require('./lib/rsc-client_EXPERIMENTAL.js');
|
|
@@ -0,0 +1,23 @@
|
|
|
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
|
+
* @flow strict-local
|
|
8
|
+
* @format
|
|
9
|
+
* @oncall relay
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
'use client';
|
|
13
|
+
'use strict';
|
|
14
|
+
|
|
15
|
+
import type {PreloadedQueryRef} from './relay-hooks/rsc/serverPreloadQuery';
|
|
16
|
+
|
|
17
|
+
const useQueryFromServer = require('./relay-hooks/rsc/useQueryFromServer');
|
|
18
|
+
|
|
19
|
+
export type {PreloadedQueryRef};
|
|
20
|
+
|
|
21
|
+
module.exports = {
|
|
22
|
+
useQueryFromServer,
|
|
23
|
+
};
|
|
@@ -0,0 +1,48 @@
|
|
|
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 {ArrayKeyType, ArrayKeyTypeData, KeyType, KeyTypeData} from './ReactRelayTypes';
|
|
9
|
+
import {GraphQLTaggedNode, IEnvironment, OperationType} from 'relay-runtime';
|
|
10
|
+
|
|
11
|
+
export interface PreloadedQueryResponse<TData> {
|
|
12
|
+
readonly data: TData;
|
|
13
|
+
readonly errors?: ReadonlyArray<{ readonly message: string }>;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface PreloadedQueryRef<TVariables, TData> {
|
|
17
|
+
readonly kind: 'PreloadedQueryRef';
|
|
18
|
+
readonly queryId: string;
|
|
19
|
+
readonly variables: TVariables;
|
|
20
|
+
readonly _response: Promise<PreloadedQueryResponse<TData>>;
|
|
21
|
+
readonly fetchedAt: number;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface ServerEnvironment {
|
|
25
|
+
readonly getEnvironment: () => IEnvironment;
|
|
26
|
+
readonly serverFetchQuery: <T extends OperationType>(
|
|
27
|
+
query: GraphQLTaggedNode,
|
|
28
|
+
variables: T['variables'],
|
|
29
|
+
) => Promise<T['response']>;
|
|
30
|
+
readonly serverPreloadQuery: <T extends OperationType>(
|
|
31
|
+
query: GraphQLTaggedNode,
|
|
32
|
+
variables: T['variables'],
|
|
33
|
+
) => PreloadedQueryRef<T['variables'], T['response']>;
|
|
34
|
+
readonly serverReadFragment: {
|
|
35
|
+
<TKey extends KeyType>(
|
|
36
|
+
fragment: GraphQLTaggedNode,
|
|
37
|
+
fragmentRef: TKey,
|
|
38
|
+
): Promise<KeyTypeData<TKey>>;
|
|
39
|
+
<TKey extends ArrayKeyType>(
|
|
40
|
+
fragment: GraphQLTaggedNode,
|
|
41
|
+
fragmentRef: TKey,
|
|
42
|
+
): Promise<ArrayKeyTypeData<TKey>>;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export function createServerEnvironment(
|
|
47
|
+
create: () => IEnvironment,
|
|
48
|
+
): ServerEnvironment;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Relay v21.0.1
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
module.exports = require('./lib/rsc_EXPERIMENTAL.js');
|
|
@@ -0,0 +1,90 @@
|
|
|
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
|
+
* @flow strict-local
|
|
8
|
+
* @format
|
|
9
|
+
* @oncall relay
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
'use strict';
|
|
13
|
+
|
|
14
|
+
import type {PreloadedQueryRef} from './relay-hooks/rsc/serverPreloadQuery';
|
|
15
|
+
import type {
|
|
16
|
+
Fragment,
|
|
17
|
+
FragmentType,
|
|
18
|
+
IEnvironment,
|
|
19
|
+
Query,
|
|
20
|
+
Variables,
|
|
21
|
+
} from 'relay-runtime';
|
|
22
|
+
|
|
23
|
+
const serverFetchQueryImpl = require('./relay-hooks/rsc/serverFetchQuery');
|
|
24
|
+
const serverPreloadQueryImpl = require('./relay-hooks/rsc/serverPreloadQuery');
|
|
25
|
+
const serverReadFragmentImpl = require('./relay-hooks/rsc/serverReadFragment');
|
|
26
|
+
const invariant = require('invariant');
|
|
27
|
+
const React = require('react');
|
|
28
|
+
|
|
29
|
+
export type {PreloadedQueryRef};
|
|
30
|
+
|
|
31
|
+
type HasSpread<TFragmentType> = {readonly $fragmentSpreads: TFragmentType, ...};
|
|
32
|
+
|
|
33
|
+
export type ServerEnvironment = {
|
|
34
|
+
readonly getEnvironment: () => IEnvironment,
|
|
35
|
+
readonly serverFetchQuery: <TVariables extends Variables, TData>(
|
|
36
|
+
query: Query<TVariables, TData>,
|
|
37
|
+
variables: TVariables,
|
|
38
|
+
) => Promise<TData>,
|
|
39
|
+
readonly serverPreloadQuery: <TVariables extends Variables, TData>(
|
|
40
|
+
query: Query<TVariables, TData>,
|
|
41
|
+
variables: TVariables,
|
|
42
|
+
) => PreloadedQueryRef<TVariables, TData>,
|
|
43
|
+
readonly serverReadFragment: <TFragmentType extends FragmentType, TData>(
|
|
44
|
+
fragment: Fragment<TFragmentType, TData>,
|
|
45
|
+
fragmentRef:
|
|
46
|
+
| HasSpread<TFragmentType>
|
|
47
|
+
| ReadonlyArray<HasSpread<TFragmentType>>,
|
|
48
|
+
) => Promise<TData>,
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
function createServerEnvironment(
|
|
52
|
+
create: () => IEnvironment,
|
|
53
|
+
): ServerEnvironment {
|
|
54
|
+
// $FlowFixMe[missing-export] React.cache is available in React 19+
|
|
55
|
+
const cache = React.cache;
|
|
56
|
+
invariant(typeof cache === 'function', 'Relay RSC APIs require React 19+');
|
|
57
|
+
const getEnvironment = cache(create);
|
|
58
|
+
|
|
59
|
+
async function serverFetchQuery<TVariables extends Variables, TData>(
|
|
60
|
+
query: Query<TVariables, TData>,
|
|
61
|
+
variables: TVariables,
|
|
62
|
+
): Promise<TData> {
|
|
63
|
+
return serverFetchQueryImpl(getEnvironment(), query, variables);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function serverPreloadQuery<TVariables extends Variables, TData>(
|
|
67
|
+
query: Query<TVariables, TData>,
|
|
68
|
+
variables: TVariables,
|
|
69
|
+
): PreloadedQueryRef<TVariables, TData> {
|
|
70
|
+
return serverPreloadQueryImpl(getEnvironment(), query, variables);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
async function serverReadFragment<TFragmentType extends FragmentType, TData>(
|
|
74
|
+
fragment: Fragment<TFragmentType, TData>,
|
|
75
|
+
fragmentRef:
|
|
76
|
+
| HasSpread<TFragmentType>
|
|
77
|
+
| ReadonlyArray<HasSpread<TFragmentType>>,
|
|
78
|
+
): Promise<TData> {
|
|
79
|
+
return serverReadFragmentImpl(getEnvironment(), fragment, fragmentRef);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return {
|
|
83
|
+
getEnvironment,
|
|
84
|
+
serverFetchQuery,
|
|
85
|
+
serverPreloadQuery,
|
|
86
|
+
serverReadFragment,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
module.exports = {createServerEnvironment};
|