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.
Files changed (129) hide show
  1. package/ReactRelayContext.js +1 -1
  2. package/ReactRelayContext.js.flow +2 -2
  3. package/ReactRelayFragmentContainer.js.flow +8 -9
  4. package/ReactRelayLocalQueryRenderer.js.flow +11 -3
  5. package/ReactRelayLoggingContext.js.flow +3 -3
  6. package/ReactRelayPaginationContainer.js.flow +31 -24
  7. package/ReactRelayQueryFetcher.js.flow +1 -1
  8. package/ReactRelayQueryRenderer.js.flow +2 -2
  9. package/ReactRelayQueryRendererContext.js.flow +2 -2
  10. package/ReactRelayRefetchContainer.js.flow +17 -14
  11. package/ReactRelayTestMocker.js.flow +10 -10
  12. package/ReactRelayTypes.js.flow +18 -20
  13. package/RelayContext.js.flow +3 -3
  14. package/__flowtests__/ReactRelayFragmentContainer-flowtest.js.flow +11 -11
  15. package/__flowtests__/ReactRelayPaginationContainer-flowtest.js.flow +5 -5
  16. package/__flowtests__/ReactRelayRefetchContainer-flowtest.js.flow +5 -5
  17. package/__flowtests__/RelayModern-flowtest.js.flow +24 -27
  18. package/__flowtests__/RelayModernFlowtest_users.graphql.js.flow +1 -1
  19. package/__flowtests__/__generated__/ReactRelayFragmentContainerFlowtest_viewer.graphql.js.flow +3 -4
  20. package/__flowtests__/__generated__/ReactRelayFragmentContainerFlowtest_viewer2.graphql.js.flow +3 -4
  21. package/__flowtests__/__generated__/ReactRelayPaginationContainerFlowtestQuery.graphql.js.flow +9 -10
  22. package/__flowtests__/__generated__/ReactRelayPaginationContainerFlowtest_viewer.graphql.js.flow +4 -5
  23. package/__flowtests__/__generated__/ReactRelayRefetchContainerFlowtestQuery.graphql.js.flow +9 -10
  24. package/__flowtests__/__generated__/ReactRelayRefetchContainerFlowtest_viewer.graphql.js.flow +4 -5
  25. package/__flowtests__/__generated__/RelayModernFlowtest_badref.graphql.js.flow +3 -4
  26. package/__flowtests__/__generated__/RelayModernFlowtest_notref.graphql.js.flow +3 -4
  27. package/__flowtests__/__generated__/RelayModernFlowtest_user.graphql.js.flow +3 -4
  28. package/__flowtests__/__generated__/RelayModernFlowtest_users.graphql.js.flow +5 -6
  29. package/buildReactRelayContainer.js.flow +4 -4
  30. package/getRootVariablesForFragments.js.flow +1 -1
  31. package/hooks.js +1 -1
  32. package/hooks.js.flow +23 -8
  33. package/index.js +1 -1
  34. package/index.js.flow +40 -14
  35. package/isRelayEnvironment.js.flow +1 -1
  36. package/jest-react/internalAct.js.flow +1 -1
  37. package/legacy.js +1 -1
  38. package/legacy.js.flow +32 -13
  39. package/lib/ReactRelayFragmentContainer.js +1 -1
  40. package/lib/ReactRelayPaginationContainer.js +8 -8
  41. package/lib/ReactRelayRefetchContainer.js +8 -8
  42. package/lib/ReactRelayTestMocker.js +5 -5
  43. package/lib/hooks.js +18 -8
  44. package/lib/index.js +30 -14
  45. package/lib/legacy.js +26 -13
  46. package/lib/relay-hooks/legacy/useBlockingPaginationFragment.js +5 -5
  47. package/lib/relay-hooks/legacy/useRefetchableFragmentNode.js +34 -34
  48. package/lib/relay-hooks/loadEntryPoint.js +2 -2
  49. package/lib/relay-hooks/loadQuery.js +14 -14
  50. package/lib/relay-hooks/preloadQuery_DEPRECATED.js +10 -10
  51. package/lib/relay-hooks/readFragmentInternal.js +6 -6
  52. package/lib/relay-hooks/rsc/serverFetchQuery.js +20 -0
  53. package/lib/relay-hooks/rsc/serverPreloadQuery.js +31 -0
  54. package/lib/relay-hooks/rsc/serverReadFragment.js +15 -0
  55. package/lib/relay-hooks/rsc/useQueryFromServer.js +62 -0
  56. package/lib/relay-hooks/useFragmentInternal_CURRENT.js +49 -25
  57. package/lib/relay-hooks/useFragmentInternal_EXPERIMENTAL.js +81 -44
  58. package/lib/relay-hooks/useLazyLoadQueryNode.js +32 -19
  59. package/lib/relay-hooks/useMutation.js +6 -14
  60. package/lib/relay-hooks/useMutationAction_EXPERIMENTAL.js +26 -0
  61. package/lib/relay-hooks/usePreloadedQuery.js +52 -47
  62. package/lib/relay-hooks/useQueryLoader.js +2 -2
  63. package/lib/relay-hooks/useQueryLoader_EXPERIMENTAL.js +2 -2
  64. package/lib/relay-hooks/useRefetchableFragmentInternal.js +31 -31
  65. package/lib/rsc-client_EXPERIMENTAL.js +7 -0
  66. package/lib/rsc_EXPERIMENTAL.js +43 -0
  67. package/multi-actor/ActorChange.js.flow +1 -1
  68. package/package.json +3 -2
  69. package/relay-hooks/EntryPointContainer.react.js.flow +6 -6
  70. package/relay-hooks/EntryPointTypes.flow.js.flow +61 -67
  71. package/relay-hooks/LazyLoadEntryPointContainer_DEPRECATED.react.js.flow +23 -21
  72. package/relay-hooks/MatchContainer.js.flow +12 -6
  73. package/relay-hooks/NestedRelayEntryPointBuilderUtils.js.flow +3 -9
  74. package/relay-hooks/QueryResource.js.flow +6 -6
  75. package/relay-hooks/RelayEnvironmentProvider.js.flow +2 -2
  76. package/relay-hooks/__flowtests__/EntryPointTypes/EntryPointElementConfig-flowtest.js.flow +6 -6
  77. package/relay-hooks/__flowtests__/EntryPointTypes/ExtractQueryTypes-flowtest.js.flow +48 -1
  78. package/relay-hooks/__flowtests__/EntryPointTypes/NestedEntrypoints-flowtest.js.flow +9 -9
  79. package/relay-hooks/__flowtests__/__generated__/useFragmentFlowtest_user.graphql.js.flow +3 -4
  80. package/relay-hooks/__flowtests__/__generated__/useFragmentFlowtest_users.graphql.js.flow +5 -6
  81. package/relay-hooks/__flowtests__/useBlockingPaginationFragment-flowtest.js.flow +27 -32
  82. package/relay-hooks/__flowtests__/useFragment-flowtest.js.flow +25 -25
  83. package/relay-hooks/__flowtests__/usePaginationFragment-flowtest.js.flow +26 -32
  84. package/relay-hooks/__flowtests__/useRefetchableFragment-flowtest.js.flow +23 -30
  85. package/relay-hooks/__flowtests__/utils.js.flow +4 -4
  86. package/relay-hooks/getConnectionState.js.flow +2 -2
  87. package/relay-hooks/legacy/FragmentResource.js.flow +13 -13
  88. package/relay-hooks/legacy/useBlockingPaginationFragment.js.flow +24 -25
  89. package/relay-hooks/legacy/useFragmentNode.js.flow +4 -4
  90. package/relay-hooks/legacy/useRefetchableFragmentNode.js.flow +79 -81
  91. package/relay-hooks/loadEntryPoint.js.flow +15 -13
  92. package/relay-hooks/loadQuery.js.flow +18 -18
  93. package/relay-hooks/preloadQuery_DEPRECATED.js.flow +16 -13
  94. package/relay-hooks/prepareEntryPoint_DEPRECATED.js.flow +7 -7
  95. package/relay-hooks/readFragmentInternal.js.flow +9 -9
  96. package/relay-hooks/rsc/serverFetchQuery.js.flow +31 -0
  97. package/relay-hooks/rsc/serverPreloadQuery.js.flow +69 -0
  98. package/relay-hooks/rsc/serverReadFragment.js.flow +33 -0
  99. package/relay-hooks/rsc/useQueryFromServer.js.flow +135 -0
  100. package/relay-hooks/useClientQuery.js.flow +2 -2
  101. package/relay-hooks/useEntryPointLoader.js.flow +11 -11
  102. package/relay-hooks/useFragment.js.flow +7 -7
  103. package/relay-hooks/useFragmentInternal.js.flow +1 -1
  104. package/relay-hooks/useFragmentInternal_CURRENT.js.flow +54 -22
  105. package/relay-hooks/useFragmentInternal_EXPERIMENTAL.js.flow +95 -46
  106. package/relay-hooks/useIsOperationNodeActive.js.flow +1 -1
  107. package/relay-hooks/useIsParentQueryActive.js.flow +1 -1
  108. package/relay-hooks/useLazyLoadQuery.js.flow +10 -3
  109. package/relay-hooks/useLazyLoadQueryNode.js.flow +67 -28
  110. package/relay-hooks/useLoadMoreFunction.js.flow +7 -6
  111. package/relay-hooks/useLoadMoreFunction_EXPERIMENTAL.js.flow +5 -5
  112. package/relay-hooks/useMemoVariables.js.flow +1 -1
  113. package/relay-hooks/useMutation.js.flow +8 -16
  114. package/relay-hooks/useMutationAction_EXPERIMENTAL.js.flow +68 -0
  115. package/relay-hooks/usePaginationFragment.js.flow +15 -11
  116. package/relay-hooks/usePrefetchableForwardPaginationFragment.js.flow +19 -18
  117. package/relay-hooks/usePrefetchableForwardPaginationFragment_EXPERIMENTAL.js.flow +19 -18
  118. package/relay-hooks/usePreloadedQuery.js.flow +119 -85
  119. package/relay-hooks/useQueryLoader.js.flow +27 -23
  120. package/relay-hooks/useQueryLoader_EXPERIMENTAL.js.flow +10 -10
  121. package/relay-hooks/useRefetchableFragment.js.flow +16 -11
  122. package/relay-hooks/useRefetchableFragmentInternal.js.flow +77 -79
  123. package/relay-hooks/useRelayLoggingContext.js.flow +1 -1
  124. package/relay-hooks/useSubscribeToInvalidationState.js.flow +1 -1
  125. package/relay-hooks/useSubscription.js.flow +1 -1
  126. package/rsc-client_EXPERIMENTAL.js +10 -0
  127. package/rsc-client_EXPERIMENTAL.js.flow +23 -0
  128. package/rsc_EXPERIMENTAL.js +10 -0
  129. package/rsc_EXPERIMENTAL.js.flow +90 -0
@@ -6,10 +6,9 @@
6
6
  *
7
7
  * @oncall relay
8
8
  *
9
- * @generated SignedSource<<36c03d8fd5d95624c243a32c2b4791e4>>
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 = $ReadOnlyArray<{|
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 = $ReadOnlyArray<{
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/*: any*/).hash = "4e6f0e70d48ec58651c17e3150c63d05";
54
+ (node/*:: as any*/).hash = "4e6f0e70d48ec58651c17e3150c63d05";
56
55
  }
57
56
 
58
- module.exports = ((node/*: any*/)/*: Fragment<
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: component(...empty)>(
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>) => mixed)
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: any).__ComponentClass = ComponentClass;
89
+ (ForwardContainer as any).__ComponentClass = ComponentClass;
90
90
  ForwardContainer.displayName = containerName;
91
91
  }
92
92
 
93
- // $FlowFixMe[incompatible-return]
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
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Relay v20.1.1
2
+ * Relay v21.0.0
3
3
  *
4
4
  * Copyright (c) Meta Platforms, Inc. and affiliates.
5
5
  *
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: RelayRuntime.ConnectionHandler,
84
+ ConnectionHandler,
71
85
 
72
- applyOptimisticMutation: RelayRuntime.applyOptimisticMutation,
73
- commitLocalUpdate: RelayRuntime.commitLocalUpdate,
74
- commitMutation: RelayRuntime.commitMutation,
75
- graphql: RelayRuntime.graphql,
76
- readInlineData: RelayRuntime.readInlineData,
77
- requestSubscription: RelayRuntime.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: RelayRuntime.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
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Relay v20.1.1
2
+ * Relay v21.0.0
3
3
  *
4
4
  * Copyright (c) Meta Platforms, Inc. and affiliates.
5
5
  *
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: RelayRuntime.ConnectionHandler,
114
+ ConnectionHandler,
90
115
  QueryRenderer: ReactRelayQueryRenderer,
91
116
  LocalQueryRenderer: ReactRelayLocalQueryRenderer,
92
117
 
93
- MutationTypes: RelayRuntime.MutationTypes,
94
- RangeOperations: RelayRuntime.RangeOperations,
118
+ MutationTypes,
119
+ RangeOperations,
95
120
 
96
121
  ReactRelayContext,
97
122
 
98
- applyOptimisticMutation: RelayRuntime.applyOptimisticMutation,
99
- commitLocalUpdate: RelayRuntime.commitLocalUpdate,
100
- commitMutation: RelayRuntime.commitMutation,
101
- createFragmentContainer: ReactRelayFragmentContainer.createContainer,
102
- createPaginationContainer: ReactRelayPaginationContainer.createContainer,
103
- createRefetchContainer: ReactRelayRefetchContainer.createContainer,
104
- fetchQuery_DEPRECATED: RelayRuntime.fetchQuery_DEPRECATED,
105
- graphql: RelayRuntime.graphql,
106
- readInlineData: RelayRuntime.readInlineData,
107
- requestSubscription: RelayRuntime.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: RelayRuntime.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: mixed): boolean {
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: mixed) => void | Thenable<U> | U,
33
+ onReject: (error: unknown) => void | Thenable<U> | U,
34
34
  ): void | Thenable<U>;
35
35
  }
36
36
 
package/legacy.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Relay v20.1.1
2
+ * Relay v21.0.0
3
3
  *
4
4
  * Copyright (c) Meta Platforms, Inc. and affiliates.
5
5
  *
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: RelayRuntime.ConnectionHandler,
74
+ ConnectionHandler,
56
75
  QueryRenderer: ReactRelayQueryRenderer,
57
76
  LocalQueryRenderer: ReactRelayLocalQueryRenderer,
58
77
 
59
- MutationTypes: RelayRuntime.MutationTypes,
60
- RangeOperations: RelayRuntime.RangeOperations,
78
+ MutationTypes,
79
+ RangeOperations,
61
80
 
62
81
  ReactRelayContext,
63
82
 
64
- applyOptimisticMutation: RelayRuntime.applyOptimisticMutation,
65
- commitLocalUpdate: RelayRuntime.commitLocalUpdate,
66
- commitMutation: RelayRuntime.commitMutation,
67
- createFragmentContainer: ReactRelayFragmentContainer.createContainer,
68
- createPaginationContainer: ReactRelayPaginationContainer.createContainer,
69
- createRefetchContainer: ReactRelayRefetchContainer.createContainer,
70
- fetchQuery_DEPRECATED: RelayRuntime.fetchQuery_DEPRECATED,
71
- graphql: RelayRuntime.graphql,
72
- readInlineData: RelayRuntime.readInlineData,
73
- requestSubscription: RelayRuntime.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
- next: observerOrCallback,
67
- error: observerOrCallback
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
- resolve: resolve,
70
- reject: reject
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: 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,
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: RelayRuntime.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: RelayRuntime.ConnectionHandler,
45
+ ConnectionHandler: ConnectionHandler,
31
46
  QueryRenderer: ReactRelayQueryRenderer,
32
47
  LocalQueryRenderer: ReactRelayLocalQueryRenderer,
33
- MutationTypes: RelayRuntime.MutationTypes,
34
- RangeOperations: RelayRuntime.RangeOperations,
48
+ MutationTypes: MutationTypes,
49
+ RangeOperations: RangeOperations,
35
50
  ReactRelayContext: ReactRelayContext,
36
- applyOptimisticMutation: RelayRuntime.applyOptimisticMutation,
37
- commitLocalUpdate: RelayRuntime.commitLocalUpdate,
38
- commitMutation: RelayRuntime.commitMutation,
39
- createFragmentContainer: ReactRelayFragmentContainer.createContainer,
40
- createPaginationContainer: ReactRelayPaginationContainer.createContainer,
41
- createRefetchContainer: ReactRelayRefetchContainer.createContainer,
42
- fetchQuery_DEPRECATED: RelayRuntime.fetchQuery_DEPRECATED,
43
- graphql: RelayRuntime.graphql,
44
- readInlineData: RelayRuntime.readInlineData,
45
- requestSubscription: RelayRuntime.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: RelayRuntime.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,