react-relay 14.1.0 → 15.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 (194) hide show
  1. package/ReactRelayContainerUtils.js.flow +1 -0
  2. package/ReactRelayContext.js +1 -1
  3. package/ReactRelayContext.js.flow +1 -0
  4. package/ReactRelayFragmentContainer.js.flow +6 -2
  5. package/ReactRelayFragmentMockRenderer.js.flow +1 -0
  6. package/ReactRelayLocalQueryRenderer.js.flow +5 -3
  7. package/ReactRelayPaginationContainer.js.flow +21 -12
  8. package/ReactRelayQueryFetcher.js.flow +19 -5
  9. package/ReactRelayQueryRenderer.js.flow +32 -1
  10. package/ReactRelayQueryRendererContext.js.flow +1 -0
  11. package/ReactRelayRefetchContainer.js.flow +9 -5
  12. package/ReactRelayTestMocker.js.flow +3 -1
  13. package/ReactRelayTypes.js.flow +1 -0
  14. package/RelayContext.js.flow +1 -0
  15. package/__flowtests__/ReactRelayFragmentContainer-flowtest.js.flow +2 -1
  16. package/__flowtests__/ReactRelayPaginationContainer-flowtest.js.flow +1 -0
  17. package/__flowtests__/ReactRelayRefetchContainer-flowtest.js.flow +1 -0
  18. package/__flowtests__/RelayModern-flowtest.js.flow +1 -0
  19. package/__flowtests__/RelayModernFlowtest_badref.graphql.js.flow +1 -0
  20. package/__flowtests__/RelayModernFlowtest_notref.graphql.js.flow +1 -0
  21. package/__flowtests__/RelayModernFlowtest_user.graphql.js.flow +1 -0
  22. package/__flowtests__/RelayModernFlowtest_users.graphql.js.flow +1 -0
  23. package/__flowtests__/__generated__/ReactRelayFragmentContainerFlowtest_viewer.graphql.js.flow +3 -1
  24. package/__flowtests__/__generated__/ReactRelayFragmentContainerFlowtest_viewer2.graphql.js.flow +3 -1
  25. package/__flowtests__/__generated__/ReactRelayPaginationContainerFlowtestQuery.graphql.js.flow +4 -2
  26. package/__flowtests__/__generated__/ReactRelayPaginationContainerFlowtest_viewer.graphql.js.flow +3 -1
  27. package/__flowtests__/__generated__/ReactRelayRefetchContainerFlowtestQuery.graphql.js.flow +4 -2
  28. package/__flowtests__/__generated__/ReactRelayRefetchContainerFlowtest_viewer.graphql.js.flow +3 -1
  29. package/__flowtests__/__generated__/RelayModernFlowtest_badref.graphql.js.flow +4 -2
  30. package/__flowtests__/__generated__/RelayModernFlowtest_notref.graphql.js.flow +4 -2
  31. package/__flowtests__/__generated__/RelayModernFlowtest_user.graphql.js.flow +3 -1
  32. package/__flowtests__/__generated__/RelayModernFlowtest_users.graphql.js.flow +3 -1
  33. package/assertFragmentMap.js.flow +1 -0
  34. package/buildReactRelayContainer.js.flow +7 -5
  35. package/getRootVariablesForFragments.js.flow +1 -1
  36. package/hooks.js +1 -1
  37. package/hooks.js.flow +4 -0
  38. package/index.js +1 -1
  39. package/index.js.flow +4 -0
  40. package/isRelayEnvironment.js.flow +1 -0
  41. package/jest-react/enqueueTask.js.flow +1 -1
  42. package/jest-react/index.js.flow +1 -1
  43. package/jest-react/internalAct.js.flow +1 -1
  44. package/legacy.js +1 -1
  45. package/legacy.js.flow +1 -0
  46. package/lib/ReactRelayContainerUtils.js +2 -2
  47. package/lib/ReactRelayContext.js +3 -3
  48. package/lib/ReactRelayFragmentContainer.js +39 -66
  49. package/lib/ReactRelayFragmentMockRenderer.js +2 -3
  50. package/lib/ReactRelayLocalQueryRenderer.js +18 -30
  51. package/lib/ReactRelayPaginationContainer.js +66 -159
  52. package/lib/ReactRelayQueryFetcher.js +48 -74
  53. package/lib/ReactRelayQueryRenderer.js +62 -82
  54. package/lib/ReactRelayQueryRendererContext.js +2 -1
  55. package/lib/ReactRelayRefetchContainer.js +52 -99
  56. package/lib/ReactRelayTestMocker.js +32 -66
  57. package/lib/ReactRelayTypes.js +2 -0
  58. package/lib/RelayContext.js +4 -6
  59. package/lib/assertFragmentMap.js +3 -4
  60. package/lib/buildReactRelayContainer.js +10 -25
  61. package/lib/getRootVariablesForFragments.js +5 -8
  62. package/lib/hooks.js +5 -17
  63. package/lib/index.js +5 -24
  64. package/lib/isRelayEnvironment.js +5 -3
  65. package/lib/jest-react/enqueueTask.js +5 -9
  66. package/lib/jest-react/index.js +0 -1
  67. package/lib/jest-react/internalAct.js +9 -20
  68. package/lib/legacy.js +2 -7
  69. package/lib/multi-actor/ActorChange.js +2 -5
  70. package/lib/multi-actor/index.js +2 -1
  71. package/lib/multi-actor/useRelayActorEnvironment.js +4 -7
  72. package/lib/relay-hooks/EntryPointContainer.react.js +9 -14
  73. package/lib/relay-hooks/EntryPointTypes.flow.js +5 -2
  74. package/lib/relay-hooks/FragmentResource.js +102 -196
  75. package/lib/relay-hooks/HooksImplementation.js +2 -5
  76. package/lib/relay-hooks/InternalLogger.js +2 -2
  77. package/lib/relay-hooks/LRUCache.js +2 -19
  78. package/lib/relay-hooks/LazyLoadEntryPointContainer_DEPRECATED.react.js +33 -53
  79. package/lib/relay-hooks/MatchContainer.js +14 -22
  80. package/lib/relay-hooks/ProfilerContext.js +3 -2
  81. package/lib/relay-hooks/QueryResource.js +30 -99
  82. package/lib/relay-hooks/RelayEnvironmentProvider.js +5 -8
  83. package/lib/relay-hooks/SuspenseResource.js +8 -31
  84. package/lib/relay-hooks/loadEntryPoint.js +19 -31
  85. package/lib/relay-hooks/loadQuery.js +41 -77
  86. package/lib/relay-hooks/preloadQuery_DEPRECATED.js +10 -35
  87. package/lib/relay-hooks/prepareEntryPoint_DEPRECATED.js +9 -14
  88. package/lib/relay-hooks/react-cache/RelayReactCache.js +7 -11
  89. package/lib/relay-hooks/react-cache/getQueryResultOrFetchQuery_REACT_CACHE.js +24 -78
  90. package/lib/relay-hooks/react-cache/readFragmentInternal_REACT_CACHE.js +23 -56
  91. package/lib/relay-hooks/react-cache/useFragmentInternal_REACT_CACHE.js +65 -143
  92. package/lib/relay-hooks/react-cache/useFragment_REACT_CACHE.js +5 -14
  93. package/lib/relay-hooks/react-cache/useLazyLoadQuery_REACT_CACHE.js +17 -23
  94. package/lib/relay-hooks/react-cache/usePaginationFragment_REACT_CACHE.js +73 -74
  95. package/lib/relay-hooks/react-cache/usePreloadedQuery_REACT_CACHE.js +24 -38
  96. package/lib/relay-hooks/react-cache/useRefetchableFragmentInternal_REACT_CACHE.js +60 -102
  97. package/lib/relay-hooks/react-cache/useRefetchableFragment_REACT_CACHE.js +7 -15
  98. package/lib/relay-hooks/useBlockingPaginationFragment.js +71 -92
  99. package/lib/relay-hooks/useClientQuery.js +3 -6
  100. package/lib/relay-hooks/useEntryPointLoader.js +17 -36
  101. package/lib/relay-hooks/useFetchTrackingRef.js +10 -11
  102. package/lib/relay-hooks/useFragment.js +8 -18
  103. package/lib/relay-hooks/useFragmentNode.js +20 -31
  104. package/lib/relay-hooks/useIsMountedRef.js +4 -5
  105. package/lib/relay-hooks/useIsOperationNodeActive.js +8 -20
  106. package/lib/relay-hooks/useIsParentQueryActive.js +3 -6
  107. package/lib/relay-hooks/useLazyLoadQuery.js +6 -9
  108. package/lib/relay-hooks/useLazyLoadQueryNode.js +23 -33
  109. package/lib/relay-hooks/useLoadMoreFunction.js +45 -76
  110. package/lib/relay-hooks/useMemoOperationDescriptor.js +6 -14
  111. package/lib/relay-hooks/useMemoVariables.js +15 -33
  112. package/lib/relay-hooks/useMutation.js +8 -25
  113. package/lib/relay-hooks/usePaginationFragment.js +61 -76
  114. package/lib/relay-hooks/usePreloadedQuery.js +12 -29
  115. package/lib/relay-hooks/useQueryLoader.js +23 -47
  116. package/lib/relay-hooks/useRefetchableFragment.js +8 -18
  117. package/lib/relay-hooks/useRefetchableFragmentNode.js +64 -107
  118. package/lib/relay-hooks/useRelayEnvironment.js +4 -7
  119. package/lib/relay-hooks/useStaticFragmentNodeWarning.js +4 -7
  120. package/lib/relay-hooks/useSubscribeToInvalidationState.js +8 -8
  121. package/lib/relay-hooks/useSubscription.js +5 -9
  122. package/lib/relay-hooks/useUnsafeRef_DEPRECATED.js +29 -0
  123. package/multi-actor/ActorChange.js.flow +1 -1
  124. package/multi-actor/index.js.flow +1 -1
  125. package/multi-actor/useRelayActorEnvironment.js.flow +2 -2
  126. package/package.json +2 -2
  127. package/react-relay-hooks.js +2 -2
  128. package/react-relay-hooks.min.js +2 -2
  129. package/react-relay-legacy.js +2 -2
  130. package/react-relay-legacy.min.js +2 -2
  131. package/react-relay.js +2 -2
  132. package/react-relay.min.js +2 -2
  133. package/relay-hooks/EntryPointContainer.react.js.flow +1 -1
  134. package/relay-hooks/EntryPointTypes.flow.js.flow +7 -5
  135. package/relay-hooks/FragmentResource.js.flow +34 -8
  136. package/relay-hooks/HooksImplementation.js.flow +1 -1
  137. package/relay-hooks/InternalLogger.js.flow +1 -1
  138. package/relay-hooks/LRUCache.js.flow +1 -1
  139. package/relay-hooks/LazyLoadEntryPointContainer_DEPRECATED.react.js.flow +15 -8
  140. package/relay-hooks/MatchContainer.js.flow +1 -1
  141. package/relay-hooks/ProfilerContext.js.flow +1 -1
  142. package/relay-hooks/QueryResource.js.flow +25 -5
  143. package/relay-hooks/RelayEnvironmentProvider.js.flow +2 -2
  144. package/relay-hooks/SuspenseResource.js.flow +1 -1
  145. package/relay-hooks/__flowtests__/EntryPointTypes/EntryPointElementConfig-flowtest.js.flow +3 -1
  146. package/relay-hooks/__flowtests__/EntryPointTypes/NestedEntrypoints-flowtest.js.flow +2 -2
  147. package/relay-hooks/__flowtests__/__generated__/useFragmentFlowtest_user.graphql.js.flow +3 -1
  148. package/relay-hooks/__flowtests__/__generated__/useFragmentFlowtest_users.graphql.js.flow +3 -1
  149. package/relay-hooks/__flowtests__/useBlockingPaginationFragment-flowtest.js.flow +35 -33
  150. package/relay-hooks/__flowtests__/useFragment-flowtest.js.flow +1 -1
  151. package/relay-hooks/__flowtests__/usePaginationFragment-flowtest.js.flow +33 -32
  152. package/relay-hooks/__flowtests__/useRefetchableFragment-flowtest.js.flow +18 -18
  153. package/relay-hooks/__flowtests__/utils.js.flow +13 -2
  154. package/relay-hooks/loadEntryPoint.js.flow +11 -6
  155. package/relay-hooks/loadQuery.js.flow +11 -7
  156. package/relay-hooks/preloadQuery_DEPRECATED.js.flow +5 -6
  157. package/relay-hooks/prepareEntryPoint_DEPRECATED.js.flow +13 -8
  158. package/relay-hooks/react-cache/RelayReactCache.js.flow +1 -1
  159. package/relay-hooks/react-cache/getQueryResultOrFetchQuery_REACT_CACHE.js.flow +4 -4
  160. package/relay-hooks/react-cache/readFragmentInternal_REACT_CACHE.js.flow +3 -3
  161. package/relay-hooks/react-cache/useFragmentInternal_REACT_CACHE.js.flow +4 -4
  162. package/relay-hooks/react-cache/useFragment_REACT_CACHE.js.flow +1 -1
  163. package/relay-hooks/react-cache/useLazyLoadQuery_REACT_CACHE.js.flow +1 -1
  164. package/relay-hooks/react-cache/usePaginationFragment_REACT_CACHE.js.flow +41 -22
  165. package/relay-hooks/react-cache/usePreloadedQuery_REACT_CACHE.js.flow +1 -2
  166. package/relay-hooks/react-cache/useRefetchableFragmentInternal_REACT_CACHE.js.flow +11 -5
  167. package/relay-hooks/react-cache/useRefetchableFragment_REACT_CACHE.js.flow +2 -2
  168. package/relay-hooks/useBlockingPaginationFragment.js.flow +85 -56
  169. package/relay-hooks/useClientQuery.js.flow +1 -1
  170. package/relay-hooks/useEntryPointLoader.js.flow +10 -6
  171. package/relay-hooks/useFetchTrackingRef.js.flow +5 -4
  172. package/relay-hooks/useFragment.js.flow +2 -2
  173. package/relay-hooks/useFragmentNode.js.flow +5 -4
  174. package/relay-hooks/useIsMountedRef.js.flow +1 -1
  175. package/relay-hooks/useIsOperationNodeActive.js.flow +1 -1
  176. package/relay-hooks/useIsParentQueryActive.js.flow +1 -1
  177. package/relay-hooks/useLazyLoadQuery.js.flow +2 -2
  178. package/relay-hooks/useLazyLoadQueryNode.js.flow +2 -2
  179. package/relay-hooks/useLoadMoreFunction.js.flow +14 -9
  180. package/relay-hooks/useMemoOperationDescriptor.js.flow +3 -3
  181. package/relay-hooks/useMemoVariables.js.flow +13 -29
  182. package/relay-hooks/useMutation.js.flow +4 -4
  183. package/relay-hooks/usePaginationFragment.js.flow +53 -46
  184. package/relay-hooks/usePreloadedQuery.js.flow +47 -22
  185. package/relay-hooks/useQueryLoader.js.flow +85 -22
  186. package/relay-hooks/useRefetchableFragment.js.flow +64 -33
  187. package/relay-hooks/useRefetchableFragmentNode.js.flow +10 -4
  188. package/relay-hooks/useRelayEnvironment.js.flow +2 -2
  189. package/relay-hooks/useStaticFragmentNodeWarning.js.flow +3 -3
  190. package/relay-hooks/useSubscribeToInvalidationState.js.flow +2 -2
  191. package/relay-hooks/useSubscription.js.flow +1 -1
  192. package/relay-hooks/useUnsafeRef_DEPRECATED.js.flow +25 -0
  193. package/lib/readContext.js +0 -27
  194. package/readContext.js.flow +0 -29
@@ -6,5 +6,7 @@
6
6
  *
7
7
  *
8
8
  * @format
9
+ * @oncall relay
9
10
  */
11
+
10
12
  'use strict';
@@ -6,32 +6,30 @@
6
6
  *
7
7
  *
8
8
  * @format
9
+ * @oncall relay
9
10
  */
11
+
10
12
  'use strict';
11
13
 
12
14
  var isRelayEnvironment = require('./isRelayEnvironment');
13
-
14
15
  var invariant = require('invariant');
16
+
15
17
  /**
16
18
  * Asserts that the input is a matches the `RelayContext` type defined in
17
19
  * `RelayEnvironmentTypes` and returns it as that type.
18
20
  */
19
-
20
-
21
21
  function assertRelayContext(relay) {
22
22
  !isRelayContext(relay) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayContext: Expected `context.relay` to be an object conforming to ' + 'the `RelayContext` interface, got `%s`.', relay) : invariant(false) : void 0;
23
23
  return relay;
24
24
  }
25
+
25
26
  /**
26
27
  * Determine if the input is a plain object that matches the `RelayContext`
27
28
  * type defined in `RelayEnvironmentTypes`.
28
29
  */
29
-
30
-
31
30
  function isRelayContext(context) {
32
31
  return typeof context === 'object' && context !== null && !Array.isArray(context) && isRelayEnvironment(context.environment);
33
32
  }
34
-
35
33
  module.exports = {
36
34
  assertRelayContext: assertRelayContext,
37
35
  isRelayContext: isRelayContext
@@ -6,18 +6,18 @@
6
6
  *
7
7
  *
8
8
  * @format
9
+ * @oncall relay
9
10
  */
11
+
10
12
  'use strict';
11
13
 
12
14
  var invariant = require('invariant');
15
+
13
16
  /**
14
17
  * Fail fast if the user supplies invalid fragments as input.
15
18
  */
16
-
17
-
18
19
  function assertFragmentMap(componentName, fragmentSpec) {
19
20
  !(fragmentSpec && typeof fragmentSpec === 'object') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Could not create Relay Container for `%s`. ' + 'Expected a set of GraphQL fragments, got `%s` instead.', componentName, fragmentSpec) : invariant(false) : void 0;
20
-
21
21
  for (var key in fragmentSpec) {
22
22
  if (fragmentSpec.hasOwnProperty(key)) {
23
23
  var fragment = fragmentSpec[key];
@@ -25,5 +25,4 @@ function assertFragmentMap(componentName, fragmentSpec) {
25
25
  }
26
26
  }
27
27
  }
28
-
29
28
  module.exports = assertFragmentMap;
@@ -6,32 +6,24 @@
6
6
  *
7
7
  *
8
8
  * @format
9
+ * @oncall relay
9
10
  */
11
+
10
12
  'use strict';
11
13
 
12
14
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
13
-
14
15
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
-
16
16
  var assertFragmentMap = require('./assertFragmentMap');
17
-
18
17
  var _require = require('./ReactRelayContainerUtils'),
19
- getComponentName = _require.getComponentName,
20
- getContainerName = _require.getContainerName;
21
-
18
+ getComponentName = _require.getComponentName,
19
+ getContainerName = _require.getContainerName;
22
20
  var ReactRelayContext = require('./ReactRelayContext');
23
-
24
21
  var ReactRelayQueryRendererContext = require('./ReactRelayQueryRendererContext');
25
-
26
- var readContext = require('./readContext');
27
-
28
22
  var invariant = require('invariant');
29
-
30
23
  var React = require('react');
31
-
32
24
  var _require2 = require('relay-runtime'),
33
- getFragment = _require2.getFragment;
34
-
25
+ getFragment = _require2.getFragment;
26
+ var useContext = React.useContext;
35
27
  /**
36
28
  * Helper to create the Relay HOCs with ref forwarding, setting the displayName
37
29
  * and reading the React context.
@@ -41,38 +33,31 @@ function buildReactRelayContainer(ComponentClass, fragmentSpec, createContainerW
41
33
  var containerName = getContainerName(ComponentClass);
42
34
  assertFragmentMap(getComponentName(ComponentClass), fragmentSpec);
43
35
  var fragments = {};
44
-
45
36
  for (var key in fragmentSpec) {
46
37
  fragments[key] = getFragment(fragmentSpec[key]);
47
38
  }
48
-
49
39
  var Container = createContainerWithFragments(ComponentClass, fragments);
50
40
  Container.displayName = containerName;
51
-
52
41
  function forwardRef(props, ref) {
53
42
  var _queryRendererContext;
54
-
55
- var context = readContext(ReactRelayContext);
43
+ var context = useContext(ReactRelayContext);
56
44
  !(context != null) ? process.env.NODE_ENV !== "production" ? invariant(false, '`%s` tried to render a context that was not valid this means that ' + '`%s` was rendered outside of a query renderer.', containerName, containerName) : invariant(false) : void 0;
57
- var queryRendererContext = readContext(ReactRelayQueryRendererContext);
45
+ var queryRendererContext = useContext(ReactRelayQueryRendererContext);
58
46
  return /*#__PURE__*/React.createElement(Container, (0, _extends2["default"])({}, props, {
59
47
  __relayContext: context,
60
48
  __rootIsQueryRenderer: (_queryRendererContext = queryRendererContext === null || queryRendererContext === void 0 ? void 0 : queryRendererContext.rootIsQueryRenderer) !== null && _queryRendererContext !== void 0 ? _queryRendererContext : false,
61
49
  componentRef: props.componentRef || ref
62
50
  }));
63
51
  }
64
-
65
52
  forwardRef.displayName = containerName;
66
53
  var ForwardContainer = React.forwardRef(forwardRef);
67
-
68
54
  if (process.env.NODE_ENV !== "production") {
69
55
  // Used by RelayModernTestUtils
70
56
  ForwardContainer.__ComponentClass = ComponentClass;
71
57
  ForwardContainer.displayName = containerName;
72
- } // $FlowFixMe[incompatible-return]
73
-
58
+ }
74
59
 
60
+ // $FlowFixMe[incompatible-return]
75
61
  return ForwardContainer;
76
62
  }
77
-
78
63
  module.exports = buildReactRelayContainer;
@@ -6,24 +6,22 @@
6
6
  *
7
7
  *
8
8
  * @format
9
+ * @oncall relay
9
10
  */
11
+
10
12
  'use strict';
11
13
 
12
14
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
13
-
14
15
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
15
-
16
16
  var _require = require('relay-runtime'),
17
- getSelector = _require.getSelector;
18
-
17
+ getSelector = _require.getSelector;
19
18
  function getRootVariablesForFragments(fragments, props) {
20
- var rootVariables = {}; // NOTE: For extra safety, we make sure the rootVariables include the
19
+ var rootVariables = {};
20
+ // NOTE: For extra safety, we make sure the rootVariables include the
21
21
  // variables from all owners in this fragmentSpec, even though they
22
22
  // should all point to the same owner
23
-
24
23
  Object.keys(fragments).forEach(function (key) {
25
24
  var _selector$selectors$, _selector$selectors$2, _selector$owner$varia;
26
-
27
25
  var fragmentNode = fragments[key];
28
26
  var fragmentRef = props[key];
29
27
  var selector = getSelector(fragmentNode, fragmentRef);
@@ -32,5 +30,4 @@ function getRootVariablesForFragments(fragments, props) {
32
30
  });
33
31
  return rootVariables;
34
32
  }
35
-
36
33
  module.exports = getRootVariablesForFragments;
package/lib/hooks.js CHANGED
@@ -6,42 +6,29 @@
6
6
  *
7
7
  *
8
8
  * @format
9
+ * @oncall relay
9
10
  */
11
+
10
12
  'use strict';
11
13
 
12
14
  var EntryPointContainer = require('./relay-hooks/EntryPointContainer.react');
13
-
14
15
  var loadEntryPoint = require('./relay-hooks/loadEntryPoint');
15
-
16
16
  var _require = require('./relay-hooks/loadQuery'),
17
- loadQuery = _require.loadQuery;
18
-
17
+ loadQuery = _require.loadQuery;
18
+ var ProfilerContext = require('./relay-hooks/ProfilerContext');
19
19
  var RelayEnvironmentProvider = require('./relay-hooks/RelayEnvironmentProvider');
20
-
21
20
  var useEntryPointLoader = require('./relay-hooks/useEntryPointLoader');
22
-
23
21
  var useFragment = require('./relay-hooks/useFragment');
24
-
25
22
  var useLazyLoadQuery = require('./relay-hooks/useLazyLoadQuery');
26
-
27
23
  var useMutation = require('./relay-hooks/useMutation');
28
-
29
24
  var usePaginationFragment = require('./relay-hooks/usePaginationFragment');
30
-
31
25
  var usePreloadedQuery = require('./relay-hooks/usePreloadedQuery');
32
-
33
26
  var useQueryLoader = require('./relay-hooks/useQueryLoader');
34
-
35
27
  var useRefetchableFragment = require('./relay-hooks/useRefetchableFragment');
36
-
37
28
  var useRelayEnvironment = require('./relay-hooks/useRelayEnvironment');
38
-
39
29
  var useSubscribeToInvalidationState = require('./relay-hooks/useSubscribeToInvalidationState');
40
-
41
30
  var useSubscription = require('./relay-hooks/useSubscription');
42
-
43
31
  var RelayRuntime = require('relay-runtime');
44
-
45
32
  /**
46
33
  * The public interface for Relay Hooks.
47
34
  * This will eventually become the main public interface for react-relay.
@@ -56,6 +43,7 @@ module.exports = {
56
43
  requestSubscription: RelayRuntime.requestSubscription,
57
44
  EntryPointContainer: EntryPointContainer,
58
45
  RelayEnvironmentProvider: RelayEnvironmentProvider,
46
+ ProfilerContext: ProfilerContext,
59
47
  fetchQuery: RelayRuntime.fetchQuery,
60
48
  loadQuery: loadQuery,
61
49
  loadEntryPoint: loadEntryPoint,
package/lib/index.js CHANGED
@@ -6,56 +6,36 @@
6
6
  *
7
7
  *
8
8
  * @format
9
+ * @oncall relay
9
10
  */
11
+
10
12
  'use strict';
11
13
 
12
14
  var ReactRelayContext = require('./ReactRelayContext');
13
-
14
15
  var ReactRelayFragmentContainer = require('./ReactRelayFragmentContainer');
15
-
16
16
  var ReactRelayLocalQueryRenderer = require('./ReactRelayLocalQueryRenderer');
17
-
18
17
  var ReactRelayPaginationContainer = require('./ReactRelayPaginationContainer');
19
-
20
18
  var ReactRelayQueryRenderer = require('./ReactRelayQueryRenderer');
21
-
22
19
  var ReactRelayRefetchContainer = require('./ReactRelayRefetchContainer');
23
-
24
20
  var EntryPointContainer = require('./relay-hooks/EntryPointContainer.react');
25
-
26
21
  var loadEntryPoint = require('./relay-hooks/loadEntryPoint');
27
-
28
22
  var _require = require('./relay-hooks/loadQuery'),
29
- loadQuery = _require.loadQuery;
30
-
23
+ loadQuery = _require.loadQuery;
24
+ var ProfilerContext = require('./relay-hooks/ProfilerContext');
31
25
  var RelayEnvironmentProvider = require('./relay-hooks/RelayEnvironmentProvider');
32
-
33
26
  var useClientQuery = require('./relay-hooks/useClientQuery');
34
-
35
27
  var useEntryPointLoader = require('./relay-hooks/useEntryPointLoader');
36
-
37
28
  var useFragment = require('./relay-hooks/useFragment');
38
-
39
29
  var useLazyLoadQuery = require('./relay-hooks/useLazyLoadQuery');
40
-
41
30
  var useMutation = require('./relay-hooks/useMutation');
42
-
43
31
  var usePaginationFragment = require('./relay-hooks/usePaginationFragment');
44
-
45
32
  var usePreloadedQuery = require('./relay-hooks/usePreloadedQuery');
46
-
47
33
  var useQueryLoader = require('./relay-hooks/useQueryLoader');
48
-
49
34
  var useRefetchableFragment = require('./relay-hooks/useRefetchableFragment');
50
-
51
35
  var useRelayEnvironment = require('./relay-hooks/useRelayEnvironment');
52
-
53
36
  var useSubscribeToInvalidationState = require('./relay-hooks/useSubscribeToInvalidationState');
54
-
55
37
  var useSubscription = require('./relay-hooks/useSubscription');
56
-
57
38
  var RelayRuntime = require('relay-runtime');
58
-
59
39
  /**
60
40
  * The public interface to react-relay.
61
41
  * Currently contains both Relay Hooks and legacy Container APIs.
@@ -81,6 +61,7 @@ module.exports = {
81
61
  // Relay Hooks
82
62
  EntryPointContainer: EntryPointContainer,
83
63
  RelayEnvironmentProvider: RelayEnvironmentProvider,
64
+ ProfilerContext: ProfilerContext,
84
65
  fetchQuery: RelayRuntime.fetchQuery,
85
66
  loadQuery: loadQuery,
86
67
  loadEntryPoint: loadEntryPoint,
@@ -6,16 +6,18 @@
6
6
  *
7
7
  *
8
8
  * @format
9
+ * @oncall relay
9
10
  */
11
+
10
12
  'use strict';
13
+
11
14
  /**
12
15
  * Determine if a given value is an object that implements the `Environment`
13
16
  * interface defined in `RelayEnvironmentTypes`.
14
17
  */
15
-
16
18
  function isRelayEnvironment(environment) {
17
- return typeof environment === 'object' && environment !== null && // TODO: add applyMutation/sendMutation once ready in both cores
19
+ return typeof environment === 'object' && environment !== null &&
20
+ // TODO: add applyMutation/sendMutation once ready in both cores
18
21
  typeof environment.check === 'function' && typeof environment.lookup === 'function' && typeof environment.retain === 'function' && typeof environment.execute === 'function' && typeof environment.subscribe === 'function';
19
22
  }
20
-
21
23
  module.exports = isRelayEnvironment;
@@ -4,24 +4,25 @@
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
  // This file is sync'd from https://github.com/facebook/react/tree/main/packages/jest-react
12
+
11
13
  'use strict';
12
14
 
13
15
  var didWarnAboutMessageChannel = false;
14
16
  var enqueueTaskImpl = null;
15
-
16
17
  function enqueueTask(task) {
17
18
  if (enqueueTaskImpl === null) {
18
19
  try {
19
20
  // read require off the module object to get around the bundlers.
20
21
  // we don't want them to detect a require and bundle a Node polyfill.
21
22
  var requireString = ('require' + Math.random()).slice(0, 7);
22
- var nodeRequire = module && module[requireString]; // assuming we're in node, let's try to get node's
23
+ var nodeRequire = module && module[requireString];
24
+ // assuming we're in node, let's try to get node's
23
25
  // version of setImmediate, bypassing fake timers if any.
24
-
25
26
  enqueueTaskImpl = nodeRequire.call(module, 'timers').setImmediate;
26
27
  } catch (_unused) {
27
28
  // we're in a browser
@@ -31,23 +32,18 @@ function enqueueTask(task) {
31
32
  if (process.env.NODE_ENV !== "production") {
32
33
  if (didWarnAboutMessageChannel === false) {
33
34
  didWarnAboutMessageChannel = true;
34
-
35
35
  if (typeof MessageChannel === 'undefined') {
36
36
  console.error('This browser does not have a MessageChannel implementation, ' + 'so enqueuing tasks via await act(async () => ...) will fail. ' + 'Please file an issue at https://github.com/facebook/react/issues ' + 'if you encounter this warning.');
37
37
  }
38
38
  }
39
39
  }
40
40
  /*global MessageChannel*/
41
-
42
-
43
41
  var channel = new MessageChannel();
44
42
  channel.port1.onmessage = callback;
45
43
  channel.port2.postMessage(undefined);
46
44
  };
47
45
  }
48
46
  }
49
-
50
47
  return enqueueTaskImpl(task);
51
48
  }
52
-
53
49
  module.exports = enqueueTask;
@@ -9,5 +9,4 @@ Object.defineProperty(exports, "act", {
9
9
  return _internalAct.act;
10
10
  }
11
11
  });
12
-
13
12
  var _internalAct = require("./internalAct");
@@ -4,55 +4,51 @@
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
  /* global jest */
12
+
12
13
  // This file is sync'd from https://github.com/facebook/react/tree/main/packages/jest-react
14
+
13
15
  // This version of `act` is only used by our tests. Unlike the public version
14
16
  // of `act`, it's designed to work identically in both production and
15
17
  // development. It may have slightly different behavior from the public
16
18
  // version, too, since our constraints in our test suite are not the same as
17
19
  // those of developers using React — we're testing React itself, as opposed to
18
20
  // building an app with React.
21
+
19
22
  'use strict';
20
23
 
21
24
  var enqueueTask = require('./enqueueTask');
25
+ var Scheduler = require('scheduler/unstable_mock');
22
26
 
23
- var Scheduler = require('scheduler/unstable_mock'); // The subset of a Promise that React APIs rely on. This resolves a value.
27
+ // The subset of a Promise that React APIs rely on. This resolves a value.
24
28
  // This doesn't require a return value neither from the handler nor the
25
29
  // then function.
26
30
 
27
-
28
31
  var actingUpdatesScopeDepth = 0;
29
-
30
32
  function act(scope) {
31
33
  if (Scheduler.unstable_flushAllWithoutAsserting === undefined) {
32
34
  throw Error('This version of `act` requires a special mock build of Scheduler.');
33
35
  }
34
-
35
36
  if (setTimeout._isMockFunction !== true) {
36
37
  throw Error("This version of `act` requires Jest's timer mocks " + '(i.e. jest.useFakeTimers).');
37
38
  }
38
-
39
39
  var previousIsActEnvironment = global.IS_REACT_ACT_ENVIRONMENT;
40
40
  var previousActingUpdatesScopeDepth = actingUpdatesScopeDepth;
41
41
  actingUpdatesScopeDepth++;
42
-
43
42
  if (process.env.NODE_ENV !== "production" && actingUpdatesScopeDepth === 1) {
44
43
  // Because this is not the "real" `act`, we set this to `false` so React
45
44
  // knows not to fire `act` warnings.
46
45
  global.IS_REACT_ACT_ENVIRONMENT = false;
47
46
  }
48
-
49
47
  var unwind = function unwind() {
50
48
  if (process.env.NODE_ENV !== "production" && actingUpdatesScopeDepth === 1) {
51
49
  global.IS_REACT_ACT_ENVIRONMENT = previousIsActEnvironment;
52
50
  }
53
-
54
51
  actingUpdatesScopeDepth--;
55
-
56
52
  if (process.env.NODE_ENV !== "production") {
57
53
  if (actingUpdatesScopeDepth > previousActingUpdatesScopeDepth) {
58
54
  // if it's _less than_ previousActingUpdatesScopeDepth, then we can
@@ -60,14 +56,13 @@ function act(scope) {
60
56
  console.error('You seem to have overlapping act() calls, this is not supported. ' + 'Be sure to await previous act() calls before making a new one. ');
61
57
  }
62
58
  }
63
- }; // TODO: This would be way simpler if 1) we required a promise to be
59
+ };
60
+
61
+ // TODO: This would be way simpler if 1) we required a promise to be
64
62
  // returned and 2) we could use async/await. Since it's only our used in
65
63
  // our test suite, we should be able to.
66
-
67
-
68
64
  try {
69
65
  var result = scope();
70
-
71
66
  if (typeof result === 'object' && result !== null && typeof result.then === 'function') {
72
67
  var thenableResult = result;
73
68
  return {
@@ -88,16 +83,13 @@ function act(scope) {
88
83
  };
89
84
  } else {
90
85
  var returnValue = result;
91
-
92
86
  try {
93
87
  // TODO: Let's not support non-async scopes at all in our tests. Need to
94
88
  // migrate existing tests.
95
89
  var didFlushWork;
96
-
97
90
  do {
98
91
  didFlushWork = Scheduler.unstable_flushAllWithoutAsserting();
99
92
  } while (didFlushWork);
100
-
101
93
  return {
102
94
  then: function then(resolve, reject) {
103
95
  resolve(returnValue);
@@ -112,7 +104,6 @@ function act(scope) {
112
104
  throw error;
113
105
  }
114
106
  }
115
-
116
107
  function flushActWork(resolve, reject) {
117
108
  // Flush suspended fallbacks
118
109
  // $FlowFixMe: Flow doesn't know about global Jest object
@@ -120,7 +111,6 @@ function flushActWork(resolve, reject) {
120
111
  enqueueTask(function () {
121
112
  try {
122
113
  var didFlushWork = Scheduler.unstable_flushAllWithoutAsserting();
123
-
124
114
  if (didFlushWork) {
125
115
  flushActWork(resolve, reject);
126
116
  } else {
@@ -131,5 +121,4 @@ function flushActWork(resolve, reject) {
131
121
  }
132
122
  });
133
123
  }
134
-
135
124
  exports.act = act;
package/lib/legacy.js CHANGED
@@ -6,23 +6,18 @@
6
6
  *
7
7
  *
8
8
  * @format
9
+ * @oncall relay
9
10
  */
11
+
10
12
  'use strict';
11
13
 
12
14
  var ReactRelayContext = require('./ReactRelayContext');
13
-
14
15
  var ReactRelayFragmentContainer = require('./ReactRelayFragmentContainer');
15
-
16
16
  var ReactRelayLocalQueryRenderer = require('./ReactRelayLocalQueryRenderer');
17
-
18
17
  var ReactRelayPaginationContainer = require('./ReactRelayPaginationContainer');
19
-
20
18
  var ReactRelayQueryRenderer = require('./ReactRelayQueryRenderer');
21
-
22
19
  var ReactRelayRefetchContainer = require('./ReactRelayRefetchContainer');
23
-
24
20
  var RelayRuntime = require('relay-runtime');
25
-
26
21
  /**
27
22
  * Legacy react-relay exports.
28
23
  * Should prefer using interface defined in ./hooks.js
@@ -5,17 +5,15 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
7
  *
8
- * @emails oncall+relay
9
8
  * @format
9
+ * @oncall relay
10
10
  */
11
+
11
12
  'use strict';
12
13
 
13
14
  var RelayEnvironmentProvider = require('../relay-hooks/RelayEnvironmentProvider');
14
-
15
15
  var useRelayActorEnvironment = require('./useRelayActorEnvironment');
16
-
17
16
  var React = require('react');
18
-
19
17
  function ActorChange(props) {
20
18
  var actorEnvironment = useRelayActorEnvironment(props.actorChangePoint.__viewer);
21
19
  var getEnvironmentForActor = React.useCallback(function (actorIdentifier) {
@@ -26,5 +24,4 @@ function ActorChange(props) {
26
24
  getEnvironmentForActor: getEnvironmentForActor
27
25
  }, props.children(props.actorChangePoint.__fragmentRef, props.actorChangePoint.__viewer));
28
26
  }
29
-
30
27
  module.exports = ActorChange;
@@ -5,7 +5,8 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
7
  *
8
- * @emails oncall+relay
9
8
  * @format
9
+ * @oncall relay
10
10
  */
11
+
11
12
  'use strict';
@@ -4,19 +4,17 @@
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
  *
9
8
  * @format
9
+ * @oncall relay
10
10
  */
11
+
11
12
  'use strict';
12
13
 
14
+ var ReactRelayContext = require('./../ReactRelayContext');
13
15
  var invariant = require('invariant');
14
-
15
16
  var _require = require('react'),
16
- useContext = _require.useContext;
17
-
18
- var ReactRelayContext = require('react-relay/ReactRelayContext');
19
-
17
+ useContext = _require.useContext;
20
18
  function useRelayActorEnvironment(actorIdentifier) {
21
19
  var context = useContext(ReactRelayContext);
22
20
  !(context != null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'useRelayActorEnvironment: Expected to have found a Relay environment provided by ' + 'a `RelayEnvironmentProvider` component. ' + 'This usually means that useRelayActorEnvironment was used in a ' + 'component that is not a descendant of a `RelayEnvironmentProvider`. ' + 'Please make sure a `RelayEnvironmentProvider` has been rendered somewhere ' + 'as a parent or ancestor of your component.') : invariant(false) : void 0;
@@ -24,5 +22,4 @@ function useRelayActorEnvironment(actorIdentifier) {
24
22
  !(getEnvironmentForActor != null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'useRelayActorEnvironment: Expected to have a function `getEnvironmentForActor`.' + 'This usually means that `RelayEnvironmentProvider`. was not properly set up for use in the ' + 'multi actor application. Please make sure the provider has defined a `getEnvironmentForActor`.') : invariant(false) : void 0;
25
23
  return getEnvironmentForActor(actorIdentifier);
26
24
  }
27
-
28
25
  module.exports = useRelayActorEnvironment;
@@ -4,33 +4,29 @@
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
  *
9
8
  * @format
9
+ * @oncall relay
10
10
  */
11
+
11
12
  'use strict';
12
13
 
13
14
  var ProfilerContext = require('./ProfilerContext');
14
-
15
15
  var useRelayEnvironment = require('./useRelayEnvironment');
16
-
17
16
  var React = require('react');
18
-
19
17
  var _require = require('react'),
20
- useContext = _require.useContext,
21
- useEffect = _require.useEffect;
22
-
18
+ useContext = _require.useContext,
19
+ useEffect = _require.useEffect;
23
20
  var warning = require("fbjs/lib/warning");
24
-
25
21
  function EntryPointContainer(_ref) {
26
22
  var entryPointReference = _ref.entryPointReference,
27
- props = _ref.props;
23
+ props = _ref.props;
28
24
  process.env.NODE_ENV !== "production" ? warning(entryPointReference.isDisposed === false, '<EntryPointContainer>: Expected entryPointReference to not be disposed ' + 'yet. This is because disposing the entrypoint marks it for future garbage ' + 'collection, and as such may no longer be present in the Relay store. ' + 'In the future, this will become a hard error.') : void 0;
29
25
  var getComponent = entryPointReference.getComponent,
30
- queries = entryPointReference.queries,
31
- entryPoints = entryPointReference.entryPoints,
32
- extraProps = entryPointReference.extraProps,
33
- rootModuleID = entryPointReference.rootModuleID;
26
+ queries = entryPointReference.queries,
27
+ entryPoints = entryPointReference.entryPoints,
28
+ extraProps = entryPointReference.extraProps,
29
+ rootModuleID = entryPointReference.rootModuleID;
34
30
  var Component = getComponent();
35
31
  var profilerContext = useContext(ProfilerContext);
36
32
  var environment = useRelayEnvironment();
@@ -48,5 +44,4 @@ function EntryPointContainer(_ref) {
48
44
  queries: queries
49
45
  });
50
46
  }
51
-
52
47
  module.exports = EntryPointContainer;
@@ -4,8 +4,11 @@
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
  *
9
8
  * @format
9
+ * @oncall relay
10
10
  */
11
- 'use strict';
11
+
12
+ 'use strict';
13
+
14
+ /* eslint-disable no-unused-vars */