react-relay 14.1.0 → 16.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) 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 +20 -10
  9. package/ReactRelayQueryRenderer.js.flow +15 -11
  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 +2 -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 +10 -6
  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 +0 -11
  47. package/lib/ReactRelayContext.js +1 -12
  48. package/lib/ReactRelayFragmentContainer.js +23 -122
  49. package/lib/ReactRelayFragmentMockRenderer.js +0 -12
  50. package/lib/ReactRelayLocalQueryRenderer.js +12 -41
  51. package/lib/ReactRelayPaginationContainer.js +45 -341
  52. package/lib/ReactRelayQueryFetcher.js +36 -111
  53. package/lib/ReactRelayQueryRenderer.js +29 -137
  54. package/lib/ReactRelayQueryRendererContext.js +0 -10
  55. package/lib/ReactRelayRefetchContainer.js +33 -166
  56. package/lib/ReactRelayTestMocker.js +18 -128
  57. package/lib/ReactRelayTypes.js +0 -9
  58. package/lib/RelayContext.js +0 -23
  59. package/lib/assertFragmentMap.js +0 -16
  60. package/lib/buildReactRelayContainer.js +7 -41
  61. package/lib/getRootVariablesForFragments.js +2 -19
  62. package/lib/hooks.js +3 -30
  63. package/lib/index.js +3 -39
  64. package/lib/isRelayEnvironment.js +1 -16
  65. package/lib/jest-react/enqueueTask.js +1 -25
  66. package/lib/jest-react/index.js +0 -1
  67. package/lib/jest-react/internalAct.js +2 -51
  68. package/lib/legacy.js +0 -20
  69. package/lib/multi-actor/ActorChange.js +0 -14
  70. package/lib/multi-actor/index.js +0 -10
  71. package/lib/multi-actor/useRelayActorEnvironment.js +2 -16
  72. package/lib/relay-hooks/EntryPointContainer.react.js +7 -23
  73. package/lib/relay-hooks/EntryPointTypes.flow.js +0 -10
  74. package/lib/relay-hooks/FragmentResource.js +130 -280
  75. package/lib/relay-hooks/HooksImplementation.js +0 -14
  76. package/lib/relay-hooks/InternalLogger.js +0 -11
  77. package/lib/relay-hooks/LRUCache.js +0 -39
  78. package/lib/relay-hooks/LazyLoadEntryPointContainer_DEPRECATED.react.js +27 -65
  79. package/lib/relay-hooks/MatchContainer.js +9 -111
  80. package/lib/relay-hooks/NestedRelayEntryPointBuilderUtils.js +9 -0
  81. package/lib/relay-hooks/ProfilerContext.js +0 -14
  82. package/lib/relay-hooks/QueryResource.js +14 -149
  83. package/lib/relay-hooks/RelayEnvironmentProvider.js +3 -17
  84. package/lib/relay-hooks/SuspenseResource.js +2 -59
  85. package/lib/relay-hooks/loadEntryPoint.js +10 -45
  86. package/lib/relay-hooks/loadQuery.js +29 -169
  87. package/lib/relay-hooks/preloadQuery_DEPRECATED.js +8 -58
  88. package/lib/relay-hooks/prepareEntryPoint_DEPRECATED.js +6 -24
  89. package/lib/relay-hooks/react-cache/RelayReactCache.js +4 -20
  90. package/lib/relay-hooks/react-cache/getQueryResultOrFetchQuery_REACT_CACHE.js +13 -102
  91. package/lib/relay-hooks/react-cache/readFragmentInternal_REACT_CACHE.js +18 -75
  92. package/lib/relay-hooks/react-cache/useFragmentInternal_REACT_CACHE.js +79 -222
  93. package/lib/relay-hooks/react-cache/useFragment_REACT_CACHE.js +3 -27
  94. package/lib/relay-hooks/react-cache/useLazyLoadQuery_REACT_CACHE.js +11 -33
  95. package/lib/relay-hooks/react-cache/usePaginationFragment_REACT_CACHE.js +62 -85
  96. package/lib/relay-hooks/react-cache/usePreloadedQuery_REACT_CACHE.js +20 -63
  97. package/lib/relay-hooks/react-cache/useRefetchableFragmentInternal_REACT_CACHE.js +53 -179
  98. package/lib/relay-hooks/react-cache/useRefetchableFragment_REACT_CACHE.js +5 -27
  99. package/lib/relay-hooks/useBlockingPaginationFragment.js +58 -121
  100. package/lib/relay-hooks/useClientQuery.js +0 -21
  101. package/lib/relay-hooks/useEntryPointLoader.js +12 -100
  102. package/lib/relay-hooks/useFetchTrackingRef.js +6 -33
  103. package/lib/relay-hooks/useFragment.js +5 -32
  104. package/lib/relay-hooks/useFragmentNode.js +14 -55
  105. package/lib/relay-hooks/useIsMountedRef.js +2 -14
  106. package/lib/relay-hooks/useIsOperationNodeActive.js +6 -29
  107. package/lib/relay-hooks/useIsParentQueryActive.js +1 -15
  108. package/lib/relay-hooks/useLazyLoadQuery.js +2 -23
  109. package/lib/relay-hooks/useLazyLoadQueryNode.js +18 -63
  110. package/lib/relay-hooks/useLoadMoreFunction.js +44 -100
  111. package/lib/relay-hooks/useMemoOperationDescriptor.js +4 -23
  112. package/lib/relay-hooks/useMemoVariables.js +8 -43
  113. package/lib/relay-hooks/useMutation.js +6 -34
  114. package/lib/relay-hooks/usePaginationFragment.js +49 -89
  115. package/lib/relay-hooks/usePreloadedQuery.js +10 -54
  116. package/lib/relay-hooks/useQueryLoader.js +18 -116
  117. package/lib/relay-hooks/useRefetchableFragment.js +4 -30
  118. package/lib/relay-hooks/useRefetchableFragmentNode.js +58 -184
  119. package/lib/relay-hooks/useRelayEnvironment.js +2 -16
  120. package/lib/relay-hooks/useStaticFragmentNodeWarning.js +2 -20
  121. package/lib/relay-hooks/useSubscribeToInvalidationState.js +3 -28
  122. package/lib/relay-hooks/useSubscription.js +3 -22
  123. package/lib/relay-hooks/useUnsafeRef_DEPRECATED.js +12 -0
  124. package/multi-actor/ActorChange.js.flow +1 -1
  125. package/multi-actor/index.js.flow +1 -1
  126. package/multi-actor/useRelayActorEnvironment.js.flow +2 -2
  127. package/package.json +2 -2
  128. package/react-relay-hooks.js +2 -2
  129. package/react-relay-hooks.min.js +2 -2
  130. package/react-relay-legacy.js +2 -2
  131. package/react-relay-legacy.min.js +2 -2
  132. package/react-relay.js +2 -2
  133. package/react-relay.min.js +2 -2
  134. package/relay-hooks/EntryPointContainer.react.js.flow +6 -1
  135. package/relay-hooks/EntryPointTypes.flow.js.flow +23 -20
  136. package/relay-hooks/FragmentResource.js.flow +148 -34
  137. package/relay-hooks/HooksImplementation.js.flow +1 -1
  138. package/relay-hooks/InternalLogger.js.flow +1 -1
  139. package/relay-hooks/LRUCache.js.flow +1 -1
  140. package/relay-hooks/LazyLoadEntryPointContainer_DEPRECATED.react.js.flow +19 -10
  141. package/relay-hooks/MatchContainer.js.flow +1 -1
  142. package/relay-hooks/NestedRelayEntryPointBuilderUtils.js.flow +51 -0
  143. package/relay-hooks/ProfilerContext.js.flow +1 -1
  144. package/relay-hooks/QueryResource.js.flow +25 -5
  145. package/relay-hooks/RelayEnvironmentProvider.js.flow +2 -2
  146. package/relay-hooks/SuspenseResource.js.flow +1 -1
  147. package/relay-hooks/__flowtests__/EntryPointTypes/EntryPointElementConfig-flowtest.js.flow +3 -1
  148. package/relay-hooks/__flowtests__/EntryPointTypes/NestedEntrypoints-flowtest.js.flow +9 -7
  149. package/relay-hooks/__flowtests__/__generated__/useFragmentFlowtest_user.graphql.js.flow +3 -1
  150. package/relay-hooks/__flowtests__/__generated__/useFragmentFlowtest_users.graphql.js.flow +3 -1
  151. package/relay-hooks/__flowtests__/useBlockingPaginationFragment-flowtest.js.flow +40 -33
  152. package/relay-hooks/__flowtests__/useFragment-flowtest.js.flow +1 -1
  153. package/relay-hooks/__flowtests__/usePaginationFragment-flowtest.js.flow +38 -32
  154. package/relay-hooks/__flowtests__/useRefetchableFragment-flowtest.js.flow +20 -18
  155. package/relay-hooks/__flowtests__/utils.js.flow +13 -2
  156. package/relay-hooks/loadEntryPoint.js.flow +15 -8
  157. package/relay-hooks/loadQuery.js.flow +32 -8
  158. package/relay-hooks/preloadQuery_DEPRECATED.js.flow +5 -6
  159. package/relay-hooks/prepareEntryPoint_DEPRECATED.js.flow +17 -10
  160. package/relay-hooks/react-cache/RelayReactCache.js.flow +1 -1
  161. package/relay-hooks/react-cache/getQueryResultOrFetchQuery_REACT_CACHE.js.flow +4 -4
  162. package/relay-hooks/react-cache/readFragmentInternal_REACT_CACHE.js.flow +5 -4
  163. package/relay-hooks/react-cache/useFragmentInternal_REACT_CACHE.js.flow +32 -14
  164. package/relay-hooks/react-cache/useFragment_REACT_CACHE.js.flow +4 -10
  165. package/relay-hooks/react-cache/useLazyLoadQuery_REACT_CACHE.js.flow +1 -1
  166. package/relay-hooks/react-cache/usePaginationFragment_REACT_CACHE.js.flow +39 -49
  167. package/relay-hooks/react-cache/usePreloadedQuery_REACT_CACHE.js.flow +1 -2
  168. package/relay-hooks/react-cache/useRefetchableFragmentInternal_REACT_CACHE.js.flow +29 -16
  169. package/relay-hooks/react-cache/useRefetchableFragment_REACT_CACHE.js.flow +17 -33
  170. package/relay-hooks/useBlockingPaginationFragment.js.flow +85 -58
  171. package/relay-hooks/useClientQuery.js.flow +3 -3
  172. package/relay-hooks/useEntryPointLoader.js.flow +10 -6
  173. package/relay-hooks/useFetchTrackingRef.js.flow +5 -4
  174. package/relay-hooks/useFragment.js.flow +2 -2
  175. package/relay-hooks/useFragmentNode.js.flow +7 -6
  176. package/relay-hooks/useIsMountedRef.js.flow +1 -1
  177. package/relay-hooks/useIsOperationNodeActive.js.flow +1 -1
  178. package/relay-hooks/useIsParentQueryActive.js.flow +1 -1
  179. package/relay-hooks/useLazyLoadQuery.js.flow +2 -2
  180. package/relay-hooks/useLazyLoadQueryNode.js.flow +2 -2
  181. package/relay-hooks/useLoadMoreFunction.js.flow +27 -16
  182. package/relay-hooks/useMemoOperationDescriptor.js.flow +3 -3
  183. package/relay-hooks/useMemoVariables.js.flow +13 -29
  184. package/relay-hooks/useMutation.js.flow +30 -13
  185. package/relay-hooks/usePaginationFragment.js.flow +55 -54
  186. package/relay-hooks/usePreloadedQuery.js.flow +47 -22
  187. package/relay-hooks/useQueryLoader.js.flow +78 -21
  188. package/relay-hooks/useRefetchableFragment.js.flow +65 -33
  189. package/relay-hooks/useRefetchableFragmentNode.js.flow +38 -17
  190. package/relay-hooks/useRelayEnvironment.js.flow +2 -2
  191. package/relay-hooks/useStaticFragmentNodeWarning.js.flow +3 -3
  192. package/relay-hooks/useSubscribeToInvalidationState.js.flow +2 -2
  193. package/relay-hooks/useSubscription.js.flow +1 -1
  194. package/relay-hooks/useUnsafeRef_DEPRECATED.js.flow +25 -0
  195. package/lib/readContext.js +0 -27
  196. package/readContext.js.flow +0 -29
@@ -1,28 +1,14 @@
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
- * @emails oncall+relay
8
- *
9
- * @format
10
- */
11
1
  'use strict';
12
2
 
13
3
  var warning = require("fbjs/lib/warning");
14
-
15
4
  var implementation = null;
16
-
17
5
  function inject(impl) {
18
6
  process.env.NODE_ENV !== "production" ? warning(implementation !== null, 'Relay HooksImplementation was injected twice.') : void 0;
19
7
  implementation = impl;
20
8
  }
21
-
22
9
  function get() {
23
10
  return implementation;
24
11
  }
25
-
26
12
  module.exports = {
27
13
  inject: inject,
28
14
  get: get
@@ -1,17 +1,6 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- * @emails oncall+relay
8
- *
9
- * @format
10
- */
11
1
  'use strict';
12
2
 
13
3
  var loggerImpl = function loggerImpl(eventData) {};
14
-
15
4
  module.exports = {
16
5
  setLoggerImplementation: function setLoggerImplementation(loggerFn) {
17
6
  loggerImpl = loggerFn;
@@ -1,90 +1,51 @@
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
- * @emails oncall+relay
9
- * @format
10
- */
11
1
  'use strict';
12
2
 
13
3
  var invariant = require('invariant');
14
-
15
- /**
16
- * JS maps (both plain objects and Map) maintain key insertion
17
- * order, which means there is an easy way to simulate LRU behavior
18
- * that should also perform quite well:
19
- *
20
- * To insert a new value, first delete the key from the inner _map,
21
- * then _map.set(k, v). By deleting and reinserting, you ensure that the
22
- * map sees the key as the last inserted key.
23
- *
24
- * Get does the same: if the key is present, delete and reinsert it.
25
- */
26
4
  var LRUCache = /*#__PURE__*/function () {
27
5
  function LRUCache(capacity) {
28
6
  this._capacity = capacity;
29
7
  !(this._capacity > 0) ? process.env.NODE_ENV !== "production" ? invariant(false, 'LRUCache: Unable to create instance of cache with zero or negative capacity.') : invariant(false) : void 0;
30
8
  this._map = new Map();
31
9
  }
32
-
33
10
  var _proto = LRUCache.prototype;
34
-
35
11
  _proto.set = function set(key, value) {
36
12
  this._map["delete"](key);
37
-
38
13
  this._map.set(key, value);
39
-
40
14
  if (this._map.size > this._capacity) {
41
15
  var firstKey = this._map.keys().next();
42
-
43
16
  if (!firstKey.done) {
44
17
  this._map["delete"](firstKey.value);
45
18
  }
46
19
  }
47
20
  };
48
-
49
21
  _proto.get = function get(key) {
50
22
  var value = this._map.get(key);
51
-
52
23
  if (value != null) {
53
24
  this._map["delete"](key);
54
-
55
25
  this._map.set(key, value);
56
26
  }
57
-
58
27
  return value;
59
28
  };
60
-
61
29
  _proto.has = function has(key) {
62
30
  return this._map.has(key);
63
31
  };
64
-
65
32
  _proto["delete"] = function _delete(key) {
66
33
  this._map["delete"](key);
67
34
  };
68
-
69
35
  _proto.size = function size() {
70
36
  return this._map.size;
71
37
  };
72
-
73
38
  _proto.capacity = function capacity() {
74
39
  return this._capacity - this._map.size;
75
40
  };
76
-
77
41
  _proto.clear = function clear() {
78
42
  this._map.clear();
79
43
  };
80
-
81
44
  return LRUCache;
82
45
  }();
83
-
84
46
  function create(capacity) {
85
47
  return new LRUCache(capacity);
86
48
  }
87
-
88
49
  module.exports = {
89
50
  create: create
90
51
  };
@@ -1,127 +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
- * @emails oncall+relay
8
- *
9
- * @format
10
- */
11
1
  'use strict';
12
2
 
13
3
  var preloadQuery_DEPRECATED = require('./preloadQuery_DEPRECATED');
14
-
15
4
  var ProfilerContext = require('./ProfilerContext');
16
-
17
5
  var useRelayEnvironment = require('./useRelayEnvironment');
18
-
19
6
  var React = require('react');
20
-
21
7
  var _require = require('react'),
22
- useContext = _require.useContext,
23
- useEffect = _require.useEffect,
24
- useMemo = _require.useMemo;
25
-
8
+ useContext = _require.useContext,
9
+ useEffect = _require.useEffect,
10
+ useMemo = _require.useMemo;
26
11
  var _require2 = require('relay-runtime'),
27
- stableCopy = _require2.stableCopy;
28
-
12
+ stableCopy = _require2.stableCopy;
29
13
  function stableStringify(value) {
30
14
  var _JSON$stringify;
31
-
32
15
  return (_JSON$stringify = JSON.stringify(stableCopy(value))) !== null && _JSON$stringify !== void 0 ? _JSON$stringify : 'null';
33
16
  }
34
-
35
17
  function prepareEntryPoint(environmentProvider, entryPoint, entryPointParams) {
36
- // Start loading the code for the entrypoint
37
18
  var loadingPromise = null;
38
-
39
19
  if (entryPoint.root.getModuleIfRequired() == null) {
40
20
  loadingPromise = entryPoint.root.load();
41
21
  }
42
-
43
22
  var preloadProps = entryPoint.getPreloadProps(entryPointParams);
44
23
  var queries = preloadProps.queries,
45
- entryPoints = preloadProps.entryPoints,
46
- extraProps = preloadProps.extraProps;
24
+ entryPoints = preloadProps.entryPoints,
25
+ extraProps = preloadProps.extraProps;
47
26
  var preloadedQueries = {};
48
27
  var preloadedEntryPoints = {};
49
-
50
28
  if (queries != null) {
51
29
  var queriesPropNames = Object.keys(queries);
52
30
  queriesPropNames.forEach(function (queryPropName) {
53
31
  var _queries$queryPropNam = queries[queryPropName],
54
- environmentProviderOptions = _queries$queryPropNam.environmentProviderOptions,
55
- options = _queries$queryPropNam.options,
56
- parameters = _queries$queryPropNam.parameters,
57
- variables = _queries$queryPropNam.variables;
32
+ environmentProviderOptions = _queries$queryPropNam.environmentProviderOptions,
33
+ options = _queries$queryPropNam.options,
34
+ parameters = _queries$queryPropNam.parameters,
35
+ variables = _queries$queryPropNam.variables;
58
36
  var environment = environmentProvider.getEnvironment(environmentProviderOptions);
59
37
  preloadedQueries[queryPropName] = preloadQuery_DEPRECATED(environment, parameters, variables, options, environmentProviderOptions);
60
38
  });
61
39
  }
62
-
63
40
  if (entryPoints != null) {
64
41
  var entryPointPropNames = Object.keys(entryPoints);
65
42
  entryPointPropNames.forEach(function (entryPointPropName) {
66
43
  var entryPointDescription = entryPoints[entryPointPropName];
67
-
68
44
  if (entryPointDescription == null) {
69
45
  return;
70
46
  }
71
-
72
47
  var nestedEntryPoint = entryPointDescription.entryPoint,
73
- nestedParams = entryPointDescription.entryPointParams;
48
+ nestedParams = entryPointDescription.entryPointParams;
74
49
  preloadedEntryPoints[entryPointPropName] = prepareEntryPoint(environmentProvider, nestedEntryPoint, nestedParams);
75
50
  });
76
51
  }
77
-
78
52
  return {
79
53
  entryPoints: preloadedEntryPoints,
80
54
  extraProps: extraProps !== null && extraProps !== void 0 ? extraProps : null,
81
55
  getComponent: function getComponent() {
82
56
  var component = entryPoint.root.getModuleIfRequired();
83
-
84
57
  if (component == null) {
85
58
  var _loadingPromise;
86
-
87
59
  loadingPromise = (_loadingPromise = loadingPromise) !== null && _loadingPromise !== void 0 ? _loadingPromise : entryPoint.root.load();
88
60
  throw loadingPromise;
89
- } // $FlowFixMe[incompatible-cast] - trust me Flow, its entryPoint component
90
-
91
-
61
+ }
92
62
  return component;
93
63
  },
94
64
  queries: preloadedQueries,
95
65
  rootModuleID: entryPoint.root.getModuleId()
96
66
  };
97
67
  }
98
-
99
68
  function LazyLoadEntryPointContainer_DEPRECATED(_ref) {
100
69
  var entryPoint = _ref.entryPoint,
101
- entryPointParams = _ref.entryPointParams,
102
- props = _ref.props,
103
- environmentProvider = _ref.environmentProvider;
70
+ entryPointParams = _ref.entryPointParams,
71
+ props = _ref.props,
72
+ environmentProvider = _ref.environmentProvider;
104
73
  var environment = useRelayEnvironment();
105
- var getPreloadProps = entryPoint.getPreloadProps; // IMPORTANT: Loading the component may suspend (throw), so the props
106
- // *must* be computed first to fetch the component's data-dependencies in
107
- // parallel with the component itself (the code).
108
-
74
+ var getPreloadProps = entryPoint.getPreloadProps;
109
75
  var entryPointParamsHash = stableStringify(entryPointParams);
110
-
111
76
  var _useMemo = useMemo(function () {
112
- return prepareEntryPoint(environmentProvider !== null && environmentProvider !== void 0 ? environmentProvider : {
113
- getEnvironment: function getEnvironment() {
114
- return environment;
115
- }
116
- }, entryPoint, entryPointParams); // NOTE: stableParams encodes the information from params
117
- // eslint-disable-next-line react-hooks/exhaustive-deps
118
- }, [environment, environmentProvider, getPreloadProps, entryPointParamsHash]),
119
- getComponent = _useMemo.getComponent,
120
- queries = _useMemo.queries,
121
- entryPoints = _useMemo.entryPoints,
122
- extraProps = _useMemo.extraProps,
123
- rootModuleID = _useMemo.rootModuleID;
124
-
77
+ return prepareEntryPoint(environmentProvider !== null && environmentProvider !== void 0 ? environmentProvider : {
78
+ getEnvironment: function getEnvironment() {
79
+ return environment;
80
+ }
81
+ }, entryPoint, entryPointParams);
82
+ }, [environment, environmentProvider, getPreloadProps, entryPointParamsHash]),
83
+ getComponent = _useMemo.getComponent,
84
+ queries = _useMemo.queries,
85
+ entryPoints = _useMemo.entryPoints,
86
+ extraProps = _useMemo.extraProps,
87
+ rootModuleID = _useMemo.rootModuleID;
125
88
  var Component = useMemo(function () {
126
89
  return getComponent();
127
90
  }, [getComponent]);
@@ -140,5 +103,4 @@ function LazyLoadEntryPointContainer_DEPRECATED(_ref) {
140
103
  queries: queries
141
104
  });
142
105
  }
143
-
144
106
  module.exports = LazyLoadEntryPointContainer_DEPRECATED;
@@ -1,126 +1,29 @@
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
- * @emails oncall+relay
8
- *
9
- * @format
10
- */
11
1
  'use strict';
12
2
 
13
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
14
-
15
4
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
16
-
17
5
  var React = require('react');
18
-
19
6
  var useMemo = React.useMemo;
20
- /**
21
- * Renders the results of a data-driven dependency fetched with the `@match`
22
- * directive. The `@match` directive can be used to specify a mapping of
23
- * result types to the containers used to render those types. The result
24
- * value is an opaque object that described which component was selected
25
- * and a reference to its data. Use <MatchContainer/> to render these
26
- * values.
27
- *
28
- * ## Example
29
- *
30
- * For example, consider a piece of media content that might be text or
31
- * an image, where for clients that don't support images the application
32
- * should fall back to rendering the image caption as text. @match can be
33
- * used to dynamically select whether to render a given media item as
34
- * an image or text (on the server) and then fetch the corresponding
35
- * React component and its data dependencies (information about the
36
- * image or about the text).
37
- *
38
- * ```
39
- * // Media.react.js
40
- *
41
- * // Define a React component that uses <MatchContainer /> to render the
42
- * // results of a @module selection
43
- * function Media(props) {
44
- * const {media, ...restProps} = props;
45
- *
46
- * const loader = moduleReference => {
47
- * // given the data returned by your server for the @module directive,
48
- * // return the React component (or throw a Suspense promise if
49
- * // it is loading asynchronously).
50
- * todo_returnModuleOrThrowPromise(moduleReference);
51
- * };
52
- * return <MatchContainer
53
- * loader={loader}
54
- * match={media.mediaAttachment}
55
- * props={restProps}
56
- * />;
57
- * }
58
- *
59
- * module.exports = createSuspenseFragmentContainer(
60
- * Media,
61
- * {
62
- * media: graphql`
63
- * fragment Media_media on Media {
64
- * # ...
65
- * mediaAttachment @match {
66
- * ...ImageContainer_image @module(name: "ImageContainer.react")
67
- * ...TextContainer_text @module(name: "TextContainer.react")
68
- * }
69
- * }
70
- * `
71
- * },
72
- * );
73
- * ```
74
- *
75
- * ## API
76
- *
77
- * MatchContainer accepts the following props:
78
- * - `match`: The results (an opaque object) of a `@match` field.
79
- * - `props`: Props that should be passed through to the dynamically
80
- * selected component. Note that any of the components listed in
81
- * `@module()` could be selected, so all components should accept
82
- * the value passed here.
83
- * - `loader`: A function to load a module given a reference (whatever
84
- * your server returns for the `js(moduleName: String)` field).
85
- *
86
- */
87
- // Note: this type is intentionally non-exact, it is expected that the
88
- // object may contain sibling fields.
89
-
90
7
  function MatchContainer(_ref2) {
91
8
  var _ref;
92
-
93
9
  var fallback = _ref2.fallback,
94
- loader = _ref2.loader,
95
- match = _ref2.match,
96
- props = _ref2.props;
97
-
10
+ loader = _ref2.loader,
11
+ match = _ref2.match,
12
+ props = _ref2.props;
98
13
  if (match != null && typeof match !== 'object') {
99
14
  throw new Error('MatchContainer: Expected `match` value to be an object or null/undefined.');
100
- } // NOTE: the MatchPointer type has a $fragmentSpreads field to ensure that only
101
- // an object that contains a FragmentSpread can be passed. If the fragment
102
- // spread matches, then the metadata fields below (__id, __fragments, etc.)
103
- // will be present. But they can be missing if all the fragment spreads use
104
- // @module and none of the types matched. The cast here is necessary because
105
- // fragment Flow types don't describe metadata fields, only the actual schema
106
- // fields the developer selected.
107
-
108
-
15
+ }
109
16
  var _ref3 = (_ref = match) !== null && _ref !== void 0 ? _ref : {},
110
- __id = _ref3.__id,
111
- __fragments = _ref3.__fragments,
112
- __fragmentOwner = _ref3.__fragmentOwner,
113
- __fragmentPropName = _ref3.__fragmentPropName,
114
- __module_component = _ref3.__module_component;
115
-
17
+ __id = _ref3.__id,
18
+ __fragments = _ref3.__fragments,
19
+ __fragmentOwner = _ref3.__fragmentOwner,
20
+ __fragmentPropName = _ref3.__fragmentPropName,
21
+ __module_component = _ref3.__module_component;
116
22
  if (__fragmentOwner != null && typeof __fragmentOwner !== 'object' || __fragmentPropName != null && typeof __fragmentPropName !== 'string' || __fragments != null && typeof __fragments !== 'object' || __id != null && typeof __id !== 'string') {
117
23
  throw new Error("MatchContainer: Invalid 'match' value, expected an object that has a " + "'...SomeFragment' spread.");
118
24
  }
119
-
120
25
  var LoadedContainer = __module_component != null ? loader(__module_component) : null;
121
26
  var fragmentProps = useMemo(function () {
122
- // TODO: Perform this transformation in RelayReader so that unchanged
123
- // output of subscriptions already has a stable identity.
124
27
  if (__fragmentPropName != null && __id != null && __fragments != null) {
125
28
  var fragProps = {};
126
29
  fragProps[__fragmentPropName] = {
@@ -130,17 +33,12 @@ function MatchContainer(_ref2) {
130
33
  };
131
34
  return fragProps;
132
35
  }
133
-
134
36
  return null;
135
37
  }, [__id, __fragments, __fragmentOwner, __fragmentPropName]);
136
-
137
38
  if (LoadedContainer != null && fragmentProps != null) {
138
- // $FlowFixMe[incompatible-type]
139
- // $FlowFixMe[cannot-spread-indexer]
140
39
  return /*#__PURE__*/React.createElement(LoadedContainer, (0, _extends2["default"])({}, props, fragmentProps));
141
40
  } else {
142
41
  return fallback !== null && fallback !== void 0 ? fallback : null;
143
42
  }
144
43
  }
145
-
146
44
  module.exports = MatchContainer;
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.NestedRelayEntryPoint = NestedRelayEntryPoint;
7
+ function NestedRelayEntryPoint(params) {
8
+ return params;
9
+ }
@@ -1,20 +1,6 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- * @emails oncall+relay
8
- *
9
- * @format
10
- */
11
- // This contextual profiler can be used to wrap a react sub-tree. It will bind
12
- // the RelayProfiler during the render phase of these components. Allows
13
- // collecting metrics for a specific part of your application.
14
1
  'use strict';
15
2
 
16
3
  var React = require('react');
17
-
18
4
  var ProfilerContext = React.createContext({
19
5
  wrapPrepareQueryResource: function wrapPrepareQueryResource(cb) {
20
6
  return cb();