relay-runtime 20.1.1 → 21.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/experimental.d.ts +34 -0
  2. package/experimental.js +1 -1
  3. package/experimental.js.flow +11 -11
  4. package/handlers/RelayDefaultHandlerProvider.d.ts +12 -0
  5. package/handlers/connection/ConnectionHandler.d.ts +51 -0
  6. package/handlers/connection/ConnectionHandler.js.flow +5 -5
  7. package/handlers/connection/ConnectionInterface.d.ts +40 -0
  8. package/handlers/connection/ConnectionInterface.js.flow +1 -1
  9. package/handlers/connection/MutationHandlers.d.ts +17 -0
  10. package/index.d.ts +274 -0
  11. package/index.js +1 -1
  12. package/index.js.flow +125 -62
  13. package/lib/experimental.js +3 -3
  14. package/lib/index.js +105 -57
  15. package/lib/multi-actor-environment/ActorIdentifier.js +2 -2
  16. package/lib/multi-actor-environment/MultiActorEnvironment.js +3 -1
  17. package/lib/mutations/commitMutation.js +8 -8
  18. package/lib/mutations/validateMutation.js +4 -4
  19. package/lib/query/GraphQLTag.js +3 -3
  20. package/lib/query/fetchQuery.js +15 -3
  21. package/lib/store/DataChecker.js +38 -4
  22. package/lib/store/NormalizationEngine.js +373 -0
  23. package/lib/store/OperationExecutor.js +172 -113
  24. package/lib/store/RelayConcreteVariables.js +1 -1
  25. package/lib/store/RelayErrorTrie.js +2 -2
  26. package/lib/store/RelayExperimentalGraphResponseTransform.js +8 -8
  27. package/lib/store/RelayModernEnvironment.js +26 -19
  28. package/lib/store/RelayModernRecord.js +18 -8
  29. package/lib/store/RelayModernSelector.js +9 -9
  30. package/lib/store/RelayModernStore.js +152 -43
  31. package/lib/store/RelayPublishQueue.js +1 -1
  32. package/lib/store/RelayReader.js +76 -38
  33. package/lib/store/RelayRecordSource.js +6 -0
  34. package/lib/store/RelayReferenceMarker.js +2 -1
  35. package/lib/store/RelayResponseNormalizer.js +88 -55
  36. package/lib/store/RelayStoreSubscriptions.js +34 -10
  37. package/lib/store/RelayStoreUtils.js +8 -1
  38. package/lib/store/ResolverFragments.js +2 -2
  39. package/lib/store/live-resolvers/LiveResolverCache.js +25 -9
  40. package/lib/store/observeFragmentExperimental.js +17 -1
  41. package/lib/store/observeQueryExperimental.js +2 -2
  42. package/lib/subscription/requestSubscription.js +3 -3
  43. package/lib/util/RelayError.js +3 -0
  44. package/lib/util/RelayFeatureFlags.js +6 -2
  45. package/lib/util/RelayReplaySubject.js +4 -4
  46. package/lib/util/handlePotentialSnapshotErrors.js +2 -2
  47. package/lib/util/stableCopy.js +2 -2
  48. package/llm-docs/api-reference/entrypoint-apis/entrypoint-container.mdx +38 -0
  49. package/llm-docs/api-reference/entrypoint-apis/load-entrypoint.mdx +77 -0
  50. package/llm-docs/api-reference/entrypoint-apis/use-entrypoint-loader.mdx +99 -0
  51. package/llm-docs/api-reference/graphql/graphql-directives.mdx +378 -0
  52. package/llm-docs/api-reference/hooks/_use-lazy-load-query-extra.mdx +16 -0
  53. package/llm-docs/api-reference/hooks/load-query.mdx +84 -0
  54. package/llm-docs/api-reference/hooks/relay-environment-provider.mdx +78 -0
  55. package/llm-docs/api-reference/hooks/use-client-query.mdx +65 -0
  56. package/llm-docs/api-reference/hooks/use-fragment.mdx +69 -0
  57. package/llm-docs/api-reference/hooks/use-lazy-load-query.mdx +62 -0
  58. package/llm-docs/api-reference/hooks/use-mutation.mdx +94 -0
  59. package/llm-docs/api-reference/hooks/use-pagination-fragment.mdx +166 -0
  60. package/llm-docs/api-reference/hooks/use-prefetchable-forward-pagination-fragment.mdx +134 -0
  61. package/llm-docs/api-reference/hooks/use-preloaded-query.mdx +84 -0
  62. package/llm-docs/api-reference/hooks/use-query-loader.mdx +95 -0
  63. package/llm-docs/api-reference/hooks/use-refetchable-fragment.mdx +122 -0
  64. package/llm-docs/api-reference/hooks/use-relay-environment.mdx +37 -0
  65. package/llm-docs/api-reference/hooks/use-subscription.mdx +66 -0
  66. package/llm-docs/api-reference/relay-resolvers/docblock-format.mdx +321 -0
  67. package/llm-docs/api-reference/relay-resolvers/runtime-functions.mdx +94 -0
  68. package/llm-docs/api-reference/relay-runtime/commit-mutation.mdx +65 -0
  69. package/llm-docs/api-reference/relay-runtime/fetch-query.mdx +118 -0
  70. package/llm-docs/api-reference/relay-runtime/field-logger.mdx +170 -0
  71. package/llm-docs/api-reference/relay-runtime/observe-fragment.mdx +92 -0
  72. package/llm-docs/api-reference/relay-runtime/relay-environment.mdx +53 -0
  73. package/llm-docs/api-reference/relay-runtime/request-subscription.mdx +54 -0
  74. package/llm-docs/api-reference/relay-runtime/runtime-configuration.mdx +52 -0
  75. package/llm-docs/api-reference/relay-runtime/store.mdx +734 -0
  76. package/llm-docs/api-reference/relay-runtime/wait-for-fragment-data.mdx +89 -0
  77. package/llm-docs/api-reference/types/CacheConfig.mdx +8 -0
  78. package/llm-docs/api-reference/types/Disposable.mdx +4 -0
  79. package/llm-docs/api-reference/types/GraphQLSubscriptionConfig.mdx +17 -0
  80. package/llm-docs/api-reference/types/MutationConfig.mdx +31 -0
  81. package/llm-docs/api-reference/types/SelectorStoreUpdater.mdx +6 -0
  82. package/llm-docs/api-reference/types/UploadableMap.mdx +3 -0
  83. package/llm-docs/community/learning-resources.mdx +64 -0
  84. package/llm-docs/debugging/declarative-mutation-directives.mdx +34 -0
  85. package/llm-docs/debugging/disallowed-id-types-error.mdx +43 -0
  86. package/llm-docs/debugging/inconsistent-typename-error.mdx +47 -0
  87. package/llm-docs/debugging/relay-devtools.mdx +73 -0
  88. package/llm-docs/debugging/why-null.mdx +116 -0
  89. package/llm-docs/editor-support.mdx +55 -0
  90. package/llm-docs/error-reference/unknown-field.mdx +36 -0
  91. package/llm-docs/getting-started/babel-plugin.mdx +31 -0
  92. package/llm-docs/getting-started/compiler-config.mdx +25 -0
  93. package/llm-docs/getting-started/compiler.mdx +98 -0
  94. package/llm-docs/getting-started/lint-rules.mdx +87 -0
  95. package/llm-docs/getting-started/production.mdx +30 -0
  96. package/llm-docs/getting-started/quick-start.mdx +216 -0
  97. package/llm-docs/glossary/glossary.mdx +1040 -0
  98. package/llm-docs/guided-tour/list-data/advanced-pagination.mdx +157 -0
  99. package/llm-docs/guided-tour/list-data/connections.mdx +81 -0
  100. package/llm-docs/guided-tour/list-data/pagination.mdx +193 -0
  101. package/llm-docs/guided-tour/list-data/rendering-connections.mdx +112 -0
  102. package/llm-docs/guided-tour/list-data/streaming-pagination.mdx +87 -0
  103. package/llm-docs/guided-tour/managing-data-outside-react/retaining-queries.mdx +51 -0
  104. package/llm-docs/guided-tour/refetching/refetching-queries-with-different-data.mdx +337 -0
  105. package/llm-docs/guided-tour/refetching/refreshing-queries.mdx +350 -0
  106. package/llm-docs/guided-tour/rendering/environment.mdx +59 -0
  107. package/llm-docs/guided-tour/rendering/error-states.mdx +295 -0
  108. package/llm-docs/guided-tour/rendering/fragments.mdx +354 -0
  109. package/llm-docs/guided-tour/rendering/loading-states.mdx +245 -0
  110. package/llm-docs/guided-tour/rendering/queries.mdx +261 -0
  111. package/llm-docs/guided-tour/rendering/variables.mdx +233 -0
  112. package/llm-docs/guided-tour/reusing-cached-data/fetch-policies.mdx +56 -0
  113. package/llm-docs/guided-tour/reusing-cached-data/filling-in-missing-data.mdx +102 -0
  114. package/llm-docs/guided-tour/reusing-cached-data/introduction.mdx +22 -0
  115. package/llm-docs/guided-tour/reusing-cached-data/presence-of-data.mdx +93 -0
  116. package/llm-docs/guided-tour/reusing-cached-data/rendering-partially-cached-data.mdx +175 -0
  117. package/llm-docs/guided-tour/reusing-cached-data/staleness-of-data.mdx +116 -0
  118. package/llm-docs/guided-tour/updating-data/client-only-data.mdx +115 -0
  119. package/llm-docs/guided-tour/updating-data/graphql-mutations.mdx +334 -0
  120. package/llm-docs/guided-tour/updating-data/graphql-subscriptions.mdx +279 -0
  121. package/llm-docs/guided-tour/updating-data/imperatively-modifying-linked-fields.mdx +511 -0
  122. package/llm-docs/guided-tour/updating-data/imperatively-modifying-store-data-legacy.mdx +142 -0
  123. package/llm-docs/guided-tour/updating-data/imperatively-modifying-store-data.mdx +275 -0
  124. package/llm-docs/guided-tour/updating-data/introduction.mdx +25 -0
  125. package/llm-docs/guided-tour/updating-data/local-data-updates.mdx +71 -0
  126. package/llm-docs/guided-tour/updating-data/typesafe-updaters-faq.mdx +83 -0
  127. package/llm-docs/guided-tour/updating-data/updating-connections.mdx +592 -0
  128. package/llm-docs/guides/alias-directive.mdx +160 -0
  129. package/llm-docs/guides/catch-directive.mdx +167 -0
  130. package/llm-docs/guides/client-schema-extensions.mdx +208 -0
  131. package/llm-docs/guides/codemods.mdx +79 -0
  132. package/llm-docs/guides/data-driven-dependencies/client-3d.mdx +255 -0
  133. package/llm-docs/guides/data-driven-dependencies/configuration.mdx +127 -0
  134. package/llm-docs/guides/data-driven-dependencies/introduction.mdx +39 -0
  135. package/llm-docs/guides/data-driven-dependencies/server-3d.mdx +664 -0
  136. package/llm-docs/guides/document-comparison.mdx +106 -0
  137. package/llm-docs/guides/graphql-server-specification.mdx +453 -0
  138. package/llm-docs/guides/network-layer.mdx +69 -0
  139. package/llm-docs/guides/persisted-queries.mdx +328 -0
  140. package/llm-docs/guides/relay-resolvers/context.mdx +99 -0
  141. package/llm-docs/guides/relay-resolvers/defining-fields.mdx +151 -0
  142. package/llm-docs/guides/relay-resolvers/defining-types.mdx +164 -0
  143. package/llm-docs/guides/relay-resolvers/deprecated.mdx +27 -0
  144. package/llm-docs/guides/relay-resolvers/derived-fields.mdx +127 -0
  145. package/llm-docs/guides/relay-resolvers/descriptions.mdx +44 -0
  146. package/llm-docs/guides/relay-resolvers/enabling.mdx +41 -0
  147. package/llm-docs/guides/relay-resolvers/errors.mdx +64 -0
  148. package/llm-docs/guides/relay-resolvers/field-arguments.mdx +63 -0
  149. package/llm-docs/guides/relay-resolvers/introduction.mdx +62 -0
  150. package/llm-docs/guides/relay-resolvers/limitations.mdx +30 -0
  151. package/llm-docs/guides/relay-resolvers/live-fields.mdx +164 -0
  152. package/llm-docs/guides/relay-resolvers/return-types.mdx +161 -0
  153. package/llm-docs/guides/relay-resolvers/suspense.mdx +41 -0
  154. package/llm-docs/guides/required-directive.mdx +240 -0
  155. package/llm-docs/guides/semantic-nullability.mdx +93 -0
  156. package/llm-docs/guides/testing-relay-components.mdx +642 -0
  157. package/llm-docs/guides/testing-relay-with-preloaded-queries.mdx +160 -0
  158. package/llm-docs/guides/throw-on-field-error-directive.mdx +58 -0
  159. package/llm-docs/guides/type-emission.mdx +414 -0
  160. package/llm-docs/home.mdx +32 -0
  161. package/llm-docs/principles-and-architecture/architecture-overview.mdx +24 -0
  162. package/llm-docs/principles-and-architecture/compiler-architecture.mdx +106 -0
  163. package/llm-docs/principles-and-architecture/runtime-architecture.mdx +249 -0
  164. package/llm-docs/principles-and-architecture/thinking-in-graphql.mdx +309 -0
  165. package/llm-docs/principles-and-architecture/thinking-in-relay.mdx +104 -0
  166. package/llm-docs/principles-and-architecture/videos.mdx +50 -0
  167. package/llm-docs/tutorial/arrays-lists.mdx +126 -0
  168. package/llm-docs/tutorial/fragments-1.mdx +487 -0
  169. package/llm-docs/tutorial/graphql.mdx +172 -0
  170. package/llm-docs/tutorial/interfaces-polymorphism.mdx +161 -0
  171. package/llm-docs/tutorial/intro.mdx +58 -0
  172. package/llm-docs/tutorial/mutations-updates.mdx +624 -0
  173. package/llm-docs/tutorial/organizing-mutations-queries-and-subscriptions.mdx +13 -0
  174. package/llm-docs/tutorial/queries-1.mdx +267 -0
  175. package/llm-docs/tutorial/queries-2.mdx +389 -0
  176. package/llm-docs/tutorial/refetchable-fragments.mdx +352 -0
  177. package/multi-actor-environment/ActorIdentifier.d.ts +17 -0
  178. package/multi-actor-environment/ActorIdentifier.js.flow +2 -2
  179. package/multi-actor-environment/ActorSpecificEnvironment.js.flow +15 -15
  180. package/multi-actor-environment/ActorUtils.js.flow +1 -1
  181. package/multi-actor-environment/MultiActorEnvironment.d.ts +123 -0
  182. package/multi-actor-environment/MultiActorEnvironment.js.flow +32 -24
  183. package/multi-actor-environment/MultiActorEnvironmentTypes.d.ts +225 -0
  184. package/multi-actor-environment/MultiActorEnvironmentTypes.js.flow +6 -6
  185. package/multi-actor-environment/index.d.ts +14 -0
  186. package/multi-actor-environment.d.ts +8 -0
  187. package/mutations/RelayDeclarativeMutationConfig.d.ts +70 -0
  188. package/mutations/RelayDeclarativeMutationConfig.js.flow +9 -9
  189. package/mutations/RelayRecordProxy.js.flow +8 -11
  190. package/mutations/RelayRecordSourceMutator.js.flow +4 -4
  191. package/mutations/RelayRecordSourceProxy.js.flow +4 -4
  192. package/mutations/RelayRecordSourceSelectorProxy.js.flow +6 -6
  193. package/mutations/applyOptimisticMutation.d.ts +25 -0
  194. package/mutations/applyOptimisticMutation.js.flow +2 -2
  195. package/mutations/commitLocalUpdate.d.ts +10 -0
  196. package/mutations/commitMutation.d.ts +48 -0
  197. package/mutations/commitMutation.js.flow +21 -17
  198. package/mutations/createUpdatableProxy.js.flow +19 -19
  199. package/mutations/readUpdatableFragment.js.flow +3 -3
  200. package/mutations/readUpdatableQuery.js.flow +3 -3
  201. package/mutations/validateMutation.js.flow +7 -7
  202. package/network/RelayNetwork.d.ts +12 -0
  203. package/network/RelayNetworkTypes.d.ts +145 -0
  204. package/network/RelayNetworkTypes.js.flow +18 -18
  205. package/network/RelayObservable.d.ts +197 -0
  206. package/network/RelayObservable.js.flow +32 -30
  207. package/network/RelayQueryResponseCache.d.ts +16 -0
  208. package/network/RelayQueryResponseCache.js.flow +3 -3
  209. package/network/wrapNetworkWithLogObserver.js.flow +1 -1
  210. package/package.json +2 -1
  211. package/query/GraphQLTag.d.ts +45 -0
  212. package/query/GraphQLTag.js.flow +22 -10
  213. package/query/fetchQuery.d.ts +21 -0
  214. package/query/fetchQuery.js.flow +23 -10
  215. package/query/fetchQueryInternal.d.ts +26 -0
  216. package/query/fetchQueryInternal.js.flow +4 -4
  217. package/query/fetchQuery_DEPRECATED.d.ts +17 -0
  218. package/query/fetchQuery_DEPRECATED.js.flow +1 -1
  219. package/store/ClientID.d.ts +14 -0
  220. package/store/DataChecker.js.flow +51 -15
  221. package/store/NormalizationEngine.js.flow +782 -0
  222. package/store/OperationExecutor.d.ts +51 -0
  223. package/store/OperationExecutor.js.flow +204 -98
  224. package/store/RelayConcreteVariables.js.flow +5 -5
  225. package/store/RelayErrorTrie.js.flow +12 -12
  226. package/store/RelayExperimentalGraphResponseHandler.js.flow +3 -3
  227. package/store/RelayExperimentalGraphResponseTransform.js.flow +10 -10
  228. package/store/RelayModernEnvironment.d.ts +97 -0
  229. package/store/RelayModernEnvironment.js.flow +58 -43
  230. package/store/RelayModernFragmentSpecResolver.js.flow +1 -1
  231. package/store/RelayModernOperationDescriptor.d.ts +28 -0
  232. package/store/RelayModernOperationDescriptor.js.flow +1 -1
  233. package/store/RelayModernRecord.d.ts +92 -0
  234. package/store/RelayModernRecord.js.flow +44 -20
  235. package/store/RelayModernSelector.d.ts +123 -0
  236. package/store/RelayModernSelector.js.flow +21 -21
  237. package/store/RelayModernStore.d.ts +57 -0
  238. package/store/RelayModernStore.js.flow +219 -58
  239. package/store/RelayOperationTracker.d.ts +29 -0
  240. package/store/RelayOperationTracker.js.flow +2 -2
  241. package/store/RelayOptimisticRecordSource.js.flow +2 -2
  242. package/store/RelayPublishQueue.js.flow +29 -20
  243. package/store/RelayReader.js.flow +129 -57
  244. package/store/RelayRecordSource.d.ts +26 -0
  245. package/store/RelayRecordSource.js.flow +10 -0
  246. package/store/RelayRecordState.d.ts +28 -0
  247. package/store/RelayRecordState.js.flow +1 -1
  248. package/store/RelayReferenceMarker.js.flow +5 -4
  249. package/store/RelayResponseNormalizer.d.ts +28 -0
  250. package/store/RelayResponseNormalizer.js.flow +130 -62
  251. package/store/RelayStoreSubscriptions.js.flow +52 -8
  252. package/store/RelayStoreTypes.d.ts +1327 -0
  253. package/store/RelayStoreTypes.js.flow +371 -278
  254. package/store/RelayStoreUtils.d.ts +86 -0
  255. package/store/RelayStoreUtils.js.flow +16 -8
  256. package/store/ResolverCache.js.flow +2 -2
  257. package/store/ResolverFragments.d.ts +43 -0
  258. package/store/ResolverFragments.js.flow +22 -14
  259. package/store/StoreInspector.js.flow +7 -8
  260. package/store/ViewerPattern.d.ts +11 -0
  261. package/store/cloneRelayHandleSourceField.js.flow +1 -1
  262. package/store/cloneRelayScalarHandleSourceField.js.flow +1 -1
  263. package/store/createFragmentSpecResolver.d.ts +16 -0
  264. package/store/createRelayContext.js.flow +1 -1
  265. package/store/createRelayLoggingContext.js.flow +4 -4
  266. package/store/defaultGetDataID.js.flow +2 -2
  267. package/store/isRelayModernEnvironment.d.ts +8 -0
  268. package/store/isRelayModernEnvironment.js.flow +4 -2
  269. package/store/live-resolvers/LiveResolverCache.js.flow +55 -20
  270. package/store/live-resolvers/LiveResolverSuspenseSentinel.js.flow +3 -3
  271. package/store/live-resolvers/getOutputTypeRecordIDs.js.flow +1 -1
  272. package/store/live-resolvers/isLiveStateValue.js.flow +2 -2
  273. package/store/live-resolvers/resolverDataInjector.d.ts +27 -0
  274. package/store/live-resolvers/resolverDataInjector.js.flow +8 -5
  275. package/store/observeFragmentExperimental.d.ts +46 -0
  276. package/store/observeFragmentExperimental.js.flow +50 -21
  277. package/store/observeQueryExperimental.d.ts +30 -0
  278. package/store/observeQueryExperimental.js.flow +5 -5
  279. package/store/readInlineData.d.ts +19 -0
  280. package/store/readInlineData.js.flow +5 -5
  281. package/store/waitForFragmentExperimental.d.ts +49 -0
  282. package/store/waitForFragmentExperimental.js.flow +3 -3
  283. package/subscription/requestSubscription.d.ts +27 -0
  284. package/subscription/requestSubscription.js.flow +10 -10
  285. package/util/JSResourceTypes.flow.js.flow +4 -4
  286. package/util/NormalizationNode.d.ts +235 -0
  287. package/util/NormalizationNode.js.flow +127 -123
  288. package/util/ReaderNode.d.ts +264 -0
  289. package/util/ReaderNode.js.flow +156 -151
  290. package/util/RelayConcreteNode.d.ts +120 -0
  291. package/util/RelayConcreteNode.js.flow +32 -32
  292. package/util/RelayError.d.ts +13 -0
  293. package/util/RelayError.js.flow +4 -1
  294. package/util/RelayFeatureFlags.d.ts +40 -0
  295. package/util/RelayFeatureFlags.js.flow +21 -1
  296. package/util/RelayProfiler.d.ts +121 -0
  297. package/util/RelayProfiler.js.flow +1 -1
  298. package/util/RelayReplaySubject.d.ts +25 -0
  299. package/util/RelayReplaySubject.js.flow +3 -3
  300. package/util/RelayRuntimeTypes.d.ts +59 -0
  301. package/util/RelayRuntimeTypes.js.flow +36 -33
  302. package/util/createPayloadFor3DField.d.ts +17 -0
  303. package/util/createPayloadFor3DField.js.flow +9 -5
  304. package/util/deepFreeze.d.ts +8 -0
  305. package/util/deepFreeze.js.flow +2 -2
  306. package/util/getFragmentIdentifier.d.ts +10 -0
  307. package/util/getFragmentIdentifier.js.flow +1 -1
  308. package/util/getPaginationMetadata.d.ts +20 -0
  309. package/util/getPaginationMetadata.js.flow +1 -1
  310. package/util/getPaginationVariables.d.ts +20 -0
  311. package/util/getPaginationVariables.js.flow +1 -1
  312. package/util/getPendingOperationsForFragment.d.ts +18 -0
  313. package/util/getPendingOperationsForFragment.js.flow +2 -2
  314. package/util/getRefetchMetadata.d.ts +19 -0
  315. package/util/getRefetchMetadata.js.flow +6 -5
  316. package/util/getRelayHandleKey.d.ts +8 -0
  317. package/util/getRequestIdentifier.d.ts +17 -0
  318. package/util/getValueAtPath.d.ts +8 -0
  319. package/util/getValueAtPath.js.flow +3 -3
  320. package/util/handlePotentialSnapshotErrors.d.ts +14 -0
  321. package/util/handlePotentialSnapshotErrors.js.flow +5 -5
  322. package/util/isEmptyObject.js.flow +1 -1
  323. package/util/isPromise.d.ts +8 -0
  324. package/util/isPromise.js.flow +2 -2
  325. package/util/isScalarAndEqual.d.ts +8 -0
  326. package/util/isScalarAndEqual.js.flow +1 -1
  327. package/util/recycleNodesInto.d.ts +8 -0
  328. package/util/recycleNodesInto.js.flow +2 -2
  329. package/util/registerEnvironmentWithDevTools.js.flow +1 -1
  330. package/util/shallowFreeze.js.flow +1 -1
  331. package/util/stableCopy.d.ts +8 -0
  332. package/util/stableCopy.js.flow +5 -5
  333. package/util/withProvidedVariables.d.ts +19 -0
  334. package/util/withProvidedVariables.js.flow +14 -10
@@ -26,7 +26,7 @@ function getPaginationVariables(
26
26
  baseVariables: Variables,
27
27
  extraVariables: Variables,
28
28
  paginationMetadata: ReaderPaginationMetadata,
29
- ): {[string]: mixed, ...} {
29
+ ): {[string]: unknown, ...} {
30
30
  const {backward: backwardMetadata, forward: forwardMetadata} =
31
31
  paginationMetadata;
32
32
 
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import type {Environment, RequestDescriptor} from '../store/RelayStoreTypes';
9
+ import type { ReaderFragment } from './ReaderNode';
10
+
11
+ export default function getPendingOperationsForFragment(
12
+ environment: Environment,
13
+ fragmentNode: ReaderFragment,
14
+ fragmentOwner: RequestDescriptor,
15
+ ): {
16
+ promise: Promise<void>;
17
+ pendingOperations: readonly RequestDescriptor[];
18
+ } | null;
@@ -22,9 +22,9 @@ function getPendingOperationsForFragment(
22
22
  fragmentOwner: RequestDescriptor,
23
23
  ): {
24
24
  promise: Promise<void>,
25
- pendingOperations: $ReadOnlyArray<RequestDescriptor>,
25
+ pendingOperations: ReadonlyArray<RequestDescriptor>,
26
26
  } | null {
27
- let pendingOperations: $ReadOnlyArray<RequestDescriptor> = [];
27
+ let pendingOperations: ReadonlyArray<RequestDescriptor> = [];
28
28
  let promise = getPromiseForActiveRequest(environment, fragmentOwner);
29
29
 
30
30
  if (promise != null) {
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import {ReaderFragment, ReaderRefetchMetadata, RefetchableIdentifierInfo} from './ReaderNode';
9
+ import { ConcreteRequest } from './RelayConcreteNode';
10
+
11
+ export default function getRefetchMetadata(
12
+ fragmentNode: ReaderFragment,
13
+ componentDisplayName: string,
14
+ ): {
15
+ fragmentRefPathInResponse: ReadonlyArray<string | number>;
16
+ identifierInfo: RefetchableIdentifierInfo | null | undefined;
17
+ refetchableRequest: ConcreteRequest;
18
+ refetchMetadata: ReaderRefetchMetadata;
19
+ };
@@ -24,7 +24,7 @@ function getRefetchMetadata(
24
24
  fragmentNode: ReaderFragment,
25
25
  componentDisplayName: string,
26
26
  ): {
27
- fragmentRefPathInResponse: $ReadOnlyArray<string | number>,
27
+ fragmentRefPathInResponse: ReadonlyArray<string | number>,
28
28
  identifierInfo: ?RefetchableIdentifierInfo,
29
29
  refetchableRequest: ConcreteRequest,
30
30
  refetchMetadata: ReaderRefetchMetadata,
@@ -50,10 +50,11 @@ function getRefetchMetadata(
50
50
  );
51
51
 
52
52
  // handle both commonjs and es modules
53
- const refetchableRequest: ConcreteRequest | string =
54
- (refetchMetadata: $FlowFixMe).operation.default
55
- ? (refetchMetadata: $FlowFixMe).operation.default
56
- : refetchMetadata.operation;
53
+ const refetchableRequest: ConcreteRequest | string = (
54
+ refetchMetadata as $FlowFixMe
55
+ ).operation.default
56
+ ? (refetchMetadata as $FlowFixMe).operation.default
57
+ : refetchMetadata.operation;
57
58
  const fragmentRefPathInResponse = refetchMetadata.fragmentPathInResult;
58
59
  invariant(
59
60
  typeof refetchableRequest !== 'string',
@@ -0,0 +1,8 @@
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
+ export default function getRelayHandleKey(handleName: string, key?: string | null, fieldName?: string | null): string;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import { RequestParameters } from './RelayConcreteNode';
9
+ import { Variables } from './RelayRuntimeTypes';
10
+
11
+ export type RequestIdentifier = string;
12
+
13
+ /**
14
+ * Returns a stable identifier for the given pair of `RequestParameters` +
15
+ * variables.
16
+ */
17
+ export default function getRequestIdentifier(parameters: RequestParameters, variables: Variables): RequestIdentifier;
@@ -0,0 +1,8 @@
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
+ export default function getValueAtPath(data: any, path: ReadonlyArray<string | number>): any;
@@ -14,9 +14,9 @@
14
14
  const invariant = require('invariant');
15
15
 
16
16
  function getValueAtPath(
17
- data: mixed,
18
- path: $ReadOnlyArray<string | number>,
19
- ): mixed {
17
+ data: unknown,
18
+ path: ReadonlyArray<string | number>,
19
+ ): unknown {
20
20
  let result = data;
21
21
  for (const key of path) {
22
22
  if (result == null) {
@@ -0,0 +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
+
8
+ import {Environment, MissingRequiredFields, RelayResolverErrors} from '../store/RelayStoreTypes';
9
+
10
+ export default function handlePotentialSnapshotErrors(
11
+ environment: Environment,
12
+ missingRequiredFields: MissingRequiredFields | null | undefined,
13
+ relayResolverErrors: RelayResolverErrors,
14
+ ): void;
@@ -22,7 +22,7 @@ const invariant = require('invariant');
22
22
  function handleFieldErrors(
23
23
  environment: IEnvironment,
24
24
  fieldErrors: FieldErrors,
25
- loggingContext: mixed | void,
25
+ loggingContext: unknown | void,
26
26
  ) {
27
27
  for (const fieldError of fieldErrors) {
28
28
  // First we log all events. Note that the logger may opt to throw its own
@@ -67,7 +67,7 @@ function handleFieldErrors(
67
67
  // can't assert this via types.
68
68
  break;
69
69
  default:
70
- (fieldError.kind: empty);
70
+ fieldError.kind as empty;
71
71
  invariant(false, 'Relay: Unexpected event kind: %s', fieldError.kind);
72
72
  }
73
73
  }
@@ -86,7 +86,7 @@ function eventShouldThrow(event: FieldError): boolean {
86
86
  case 'missing_expected_data.log':
87
87
  return false;
88
88
  default:
89
- (event.kind: empty);
89
+ event.kind as empty;
90
90
  throw new Error('Relay: Unexpected event kind');
91
91
  }
92
92
  }
@@ -94,7 +94,7 @@ function eventShouldThrow(event: FieldError): boolean {
94
94
  function handlePotentialSnapshotErrors(
95
95
  environment: IEnvironment,
96
96
  fieldErrors: ?FieldErrors,
97
- loggingContext: mixed | void,
97
+ loggingContext: unknown | void,
98
98
  ) {
99
99
  /**
100
100
  * Inside handleFieldErrors, we check for throwOnFieldError - but this fn logs the error anyway by default
@@ -106,6 +106,6 @@ function handlePotentialSnapshotErrors(
106
106
  }
107
107
 
108
108
  module.exports = {
109
- handlePotentialSnapshotErrors,
110
109
  eventShouldThrow,
110
+ handlePotentialSnapshotErrors,
111
111
  };
@@ -14,7 +14,7 @@
14
14
  // $FlowFixMe[method-unbinding] added when improving typing for this parameters
15
15
  const hasOwnProperty = Object.prototype.hasOwnProperty;
16
16
 
17
- function isEmptyObject(obj: {+[key: string]: mixed}): boolean {
17
+ function isEmptyObject(obj: {readonly [key: string]: unknown}): boolean {
18
18
  for (const key in obj) {
19
19
  if (hasOwnProperty.call(obj, key)) {
20
20
  return false;
@@ -0,0 +1,8 @@
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
+ export default function isPromise(p: any): p is Promise<any>;
@@ -11,9 +11,9 @@
11
11
 
12
12
  'use strict';
13
13
 
14
- declare function isPromise<T>(p: mixed): p is Promise<T>;
14
+ declare function isPromise<T>(p: unknown): p is Promise<T>;
15
15
 
16
- function isPromise(p: mixed) {
16
+ function isPromise(p: unknown) {
17
17
  return p != null && typeof p === 'object' && typeof p.then === 'function';
18
18
  }
19
19
 
@@ -0,0 +1,8 @@
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
+ export default function isScalarAndEqual(valueA: unknown, valueB: unknown): boolean;
@@ -18,7 +18,7 @@
18
18
  * - returns false for complex values, since these cannot be cheaply tested for
19
19
  * equality (use `areEquals` instead)
20
20
  */
21
- function isScalarAndEqual(valueA: mixed, valueB: mixed): boolean {
21
+ function isScalarAndEqual(valueA: unknown, valueB: unknown): boolean {
22
22
  return valueA === valueB && (valueA === null || typeof valueA !== 'object');
23
23
  }
24
24
 
@@ -0,0 +1,8 @@
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
+ export default function recycleNodesInto<T>(prevData: T, nextData: T): T;
@@ -38,8 +38,8 @@ function recycleNodesIntoImpl<T>(
38
38
  let canRecycle = false;
39
39
 
40
40
  // Assign local variables to preserve Flow type refinement.
41
- const prevArray: ?Array<mixed> = Array.isArray(prevData) ? prevData : null;
42
- const nextArray: ?Array<mixed> = Array.isArray(nextData) ? nextData : null;
41
+ const prevArray: ?Array<unknown> = Array.isArray(prevData) ? prevData : null;
42
+ const nextArray: ?Array<unknown> = Array.isArray(nextData) ? nextData : null;
43
43
  if (prevArray && nextArray) {
44
44
  const canMutateNext = canMutate && !Object.isFrozen(nextArray);
45
45
  canRecycle =
@@ -28,7 +28,7 @@ function registerEnvironmentWithDevTools(environment: IEnvironment): void {
28
28
  // $FlowFixMe[incompatible-use] D61394600
29
29
  const devToolsHook = _global && _global.__RELAY_DEVTOOLS_HOOK__;
30
30
  if (devToolsHook) {
31
- // $FlowFixMe[incompatible-call] D61394600
31
+ // $FlowFixMe[incompatible-type] D61394600
32
32
  devToolsHook.registerEnvironment(environment);
33
33
  }
34
34
  }
@@ -12,7 +12,7 @@
12
12
  'use strict';
13
13
 
14
14
  // Shallow freeze to prevent Relay from mutating the value in recycleNodesInto or deepFreezing the value
15
- module.exports = function shallowFreeze(value: mixed) {
15
+ module.exports = function shallowFreeze(value: unknown) {
16
16
  if (
17
17
  typeof value === 'object' &&
18
18
  value != null &&
@@ -0,0 +1,8 @@
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
+ export default function stableCopy<T>(value: T): T;
@@ -16,7 +16,7 @@
16
16
  * keys sorted such that equivalent values would have identical JSON.stringify
17
17
  * results.
18
18
  */
19
- function stableCopy<T: mixed>(value: T): T {
19
+ function stableCopy<T extends unknown>(value: T): T {
20
20
  if (!value || typeof value !== 'object') {
21
21
  return value;
22
22
  }
@@ -24,17 +24,17 @@ function stableCopy<T: mixed>(value: T): T {
24
24
  return value.map(stableCopy);
25
25
  }
26
26
  const keys = Object.keys(value).sort();
27
- const stable: {[string]: mixed} = {};
27
+ const stable: {[string]: unknown} = {};
28
28
  for (let i = 0; i < keys.length; i++) {
29
29
  stable[keys[i]] = stableCopy(value[keys[i]]);
30
30
  }
31
- return (stable: any);
31
+ return stable as any;
32
32
  }
33
33
 
34
34
  // Detect if a data structure contains cycles. The logic here mirrors
35
35
  // `stableCopy` above and is intended to detect cycles early before they get
36
36
  // passed to `stableCopy` which would result in a stack overflow.
37
- function hasCycle(value: mixed, parents: Set<mixed> = new Set()): boolean {
37
+ function hasCycle(value: unknown, parents: Set<unknown> = new Set()): boolean {
38
38
  // $FlowFixMe[sketchy-null-mixed]
39
39
  if (!value || typeof value !== 'object') {
40
40
  return false;
@@ -52,6 +52,6 @@ function hasCycle(value: mixed, parents: Set<mixed> = new Set()): boolean {
52
52
  }
53
53
 
54
54
  module.exports = {
55
- stableCopy,
56
55
  hasCycle,
56
+ stableCopy,
57
57
  };
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import { ProvidedVariablesType } from './RelayConcreteNode';
9
+ import { Variables } from './RelayRuntimeTypes';
10
+
11
+ interface WithProvidedVariablesFn {
12
+ (
13
+ userSuppliedVariables: Variables,
14
+ providedVariables: ProvidedVariablesType | null | undefined,
15
+ ): Variables;
16
+ tests_only_resetDebugCache: undefined | (() => void);
17
+ }
18
+ declare const withProvidedVariables: WithProvidedVariablesFn;
19
+ export default withProvidedVariables;
@@ -19,17 +19,19 @@ const warning = require('warning');
19
19
 
20
20
  const WEAKMAP_SUPPORTED = typeof WeakMap === 'function';
21
21
  let debugCache:
22
- | Map<mixed, mixed>
23
- | Map<() => mixed, mixed>
24
- | WeakMap<interface {} | $ReadOnlyArray<mixed>, mixed>
25
- | WeakMap<() => mixed, mixed> = WEAKMAP_SUPPORTED ? new WeakMap() : new Map();
22
+ | Map<unknown, unknown>
23
+ | Map<() => unknown, unknown>
24
+ | WeakMap<interface {} | ReadonlyArray<unknown>, unknown>
25
+ | WeakMap<() => unknown, unknown> = WEAKMAP_SUPPORTED
26
+ ? new WeakMap()
27
+ : new Map();
26
28
 
27
29
  function withProvidedVariables(
28
30
  userSuppliedVariables: Variables,
29
31
  providedVariables: ?ProvidedVariablesType,
30
32
  ): Variables {
31
33
  if (providedVariables != null) {
32
- const operationVariables: {[string]: mixed} = {};
34
+ const operationVariables: {[string]: unknown} = {};
33
35
  // $FlowFixMe[unsafe-object-assign]
34
36
  Object.assign(operationVariables, userSuppliedVariables);
35
37
  Object.keys(providedVariables).forEach((varName: string) => {
@@ -64,10 +66,12 @@ function withProvidedVariables(
64
66
  }
65
67
  }
66
68
 
67
- withProvidedVariables.tests_only_resetDebugCache = ((__DEV__
68
- ? () => {
69
- debugCache = WEAKMAP_SUPPORTED ? new WeakMap() : new Map();
70
- }
71
- : undefined): void | (() => void));
69
+ withProvidedVariables.tests_only_resetDebugCache = (
70
+ __DEV__
71
+ ? () => {
72
+ debugCache = WEAKMAP_SUPPORTED ? new WeakMap() : new Map();
73
+ }
74
+ : undefined
75
+ ) as void | (() => void);
72
76
 
73
77
  module.exports = withProvidedVariables;