@graphitation/apollo-react-relay-duct-tape 0.7.3 → 1.0.0-alpha.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 (202) hide show
  1. package/CHANGELOG.md +13 -2
  2. package/README.md +122 -0
  3. package/graphitation-apollo-react-relay-duct-tape-0.5.0-store-observation.8.tgz +0 -0
  4. package/lib/convertFetchPolicy.d.ts +9 -0
  5. package/lib/convertFetchPolicy.d.ts.map +1 -0
  6. package/lib/convertFetchPolicy.js +20 -0
  7. package/lib/convertFetchPolicy.js.map +7 -0
  8. package/lib/convertFetchPolicy.mjs +14 -0
  9. package/lib/convertFetchPolicy.mjs.map +7 -0
  10. package/lib/hooks.d.ts +15 -5
  11. package/lib/hooks.d.ts.map +1 -1
  12. package/lib/hooks.js +28 -3
  13. package/lib/hooks.js.map +7 -0
  14. package/lib/hooks.mjs +33 -3
  15. package/lib/hooks.mjs.map +7 -0
  16. package/lib/index.d.ts +1 -0
  17. package/lib/index.d.ts.map +1 -1
  18. package/lib/index.js +1 -0
  19. package/lib/index.js.map +7 -0
  20. package/lib/index.mjs +1 -0
  21. package/lib/index.mjs.map +7 -0
  22. package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment.graphql.d.ts +18 -0
  23. package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment.graphql.d.ts.map +1 -0
  24. package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment.graphql.js +4 -0
  25. package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment.graphql.js.map +7 -0
  26. package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment.graphql.mjs +0 -0
  27. package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment.graphql.mjs.map +7 -0
  28. package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment_PaginationQuery.graphql.d.ts +17 -0
  29. package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment_PaginationQuery.graphql.d.ts.map +1 -0
  30. package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment_PaginationQuery.graphql.js +654 -0
  31. package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment_PaginationQuery.graphql.js.map +7 -0
  32. package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment_PaginationQuery.graphql.mjs +647 -0
  33. package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment_PaginationQuery.graphql.mjs.map +7 -0
  34. package/lib/storeObservation/__generated__/compiledHooks_ChildFragment.graphql.d.ts +11 -0
  35. package/lib/storeObservation/__generated__/compiledHooks_ChildFragment.graphql.d.ts.map +1 -0
  36. package/lib/storeObservation/__generated__/compiledHooks_ChildFragment.graphql.js +4 -0
  37. package/lib/storeObservation/__generated__/compiledHooks_ChildFragment.graphql.js.map +7 -0
  38. package/lib/storeObservation/__generated__/compiledHooks_ChildFragment.graphql.mjs +0 -0
  39. package/lib/storeObservation/__generated__/compiledHooks_ChildFragment.graphql.mjs.map +7 -0
  40. package/lib/storeObservation/__generated__/compiledHooks_ChildWatchNodeQuery.graphql.d.ts +2 -0
  41. package/lib/storeObservation/__generated__/compiledHooks_ChildWatchNodeQuery.graphql.d.ts.map +1 -0
  42. package/lib/storeObservation/__generated__/compiledHooks_ChildWatchNodeQuery.graphql.js +173 -0
  43. package/lib/storeObservation/__generated__/compiledHooks_ChildWatchNodeQuery.graphql.js.map +7 -0
  44. package/lib/storeObservation/__generated__/compiledHooks_ChildWatchNodeQuery.graphql.mjs +166 -0
  45. package/lib/storeObservation/__generated__/compiledHooks_ChildWatchNodeQuery.graphql.mjs.map +7 -0
  46. package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment.graphql.d.ts +21 -0
  47. package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment.graphql.d.ts.map +1 -0
  48. package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment.graphql.js +4 -0
  49. package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment.graphql.js.map +7 -0
  50. package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment.graphql.mjs +0 -0
  51. package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment.graphql.mjs.map +7 -0
  52. package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment_PaginationQuery.graphql.d.ts +20 -0
  53. package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment_PaginationQuery.graphql.d.ts.map +1 -0
  54. package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment_PaginationQuery.graphql.js +1059 -0
  55. package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment_PaginationQuery.graphql.js.map +7 -0
  56. package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment_PaginationQuery.graphql.mjs +1052 -0
  57. package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment_PaginationQuery.graphql.mjs.map +7 -0
  58. package/lib/storeObservation/__generated__/compiledHooks_QueryTypeFragment.graphql.d.ts +13 -0
  59. package/lib/storeObservation/__generated__/compiledHooks_QueryTypeFragment.graphql.d.ts.map +1 -0
  60. package/lib/storeObservation/__generated__/compiledHooks_QueryTypeFragment.graphql.js +4 -0
  61. package/lib/storeObservation/__generated__/compiledHooks_QueryTypeFragment.graphql.js.map +7 -0
  62. package/lib/storeObservation/__generated__/compiledHooks_QueryTypeFragment.graphql.mjs +0 -0
  63. package/lib/storeObservation/__generated__/compiledHooks_QueryTypeFragment.graphql.mjs.map +7 -0
  64. package/lib/storeObservation/__generated__/compiledHooks_QueryTypeWatchNodeQuery.graphql.d.ts +2 -0
  65. package/lib/storeObservation/__generated__/compiledHooks_QueryTypeWatchNodeQuery.graphql.d.ts.map +1 -0
  66. package/lib/storeObservation/__generated__/compiledHooks_QueryTypeWatchNodeQuery.graphql.js +98 -0
  67. package/lib/storeObservation/__generated__/compiledHooks_QueryTypeWatchNodeQuery.graphql.js.map +7 -0
  68. package/lib/storeObservation/__generated__/compiledHooks_QueryTypeWatchNodeQuery.graphql.mjs +91 -0
  69. package/lib/storeObservation/__generated__/compiledHooks_QueryTypeWatchNodeQuery.graphql.mjs.map +7 -0
  70. package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment.graphql.d.ts +13 -0
  71. package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment.graphql.d.ts.map +1 -0
  72. package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment.graphql.js +4 -0
  73. package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment.graphql.js.map +7 -0
  74. package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment.graphql.mjs +0 -0
  75. package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment.graphql.mjs.map +7 -0
  76. package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment_RefetchQuery.graphql.d.ts +16 -0
  77. package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment_RefetchQuery.graphql.d.ts.map +1 -0
  78. package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment_RefetchQuery.graphql.js +381 -0
  79. package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment_RefetchQuery.graphql.js.map +7 -0
  80. package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment_RefetchQuery.graphql.mjs +374 -0
  81. package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment_RefetchQuery.graphql.mjs.map +7 -0
  82. package/lib/storeObservation/__generated__/compiledHooks_Root_executionQuery.graphql.d.ts +20 -0
  83. package/lib/storeObservation/__generated__/compiledHooks_Root_executionQuery.graphql.d.ts.map +1 -0
  84. package/lib/storeObservation/__generated__/compiledHooks_Root_executionQuery.graphql.js +871 -0
  85. package/lib/storeObservation/__generated__/compiledHooks_Root_executionQuery.graphql.js.map +7 -0
  86. package/lib/storeObservation/__generated__/compiledHooks_Root_executionQuery.graphql.mjs +864 -0
  87. package/lib/storeObservation/__generated__/compiledHooks_Root_executionQuery.graphql.mjs.map +7 -0
  88. package/lib/storeObservation/compiledHooks/index.d.ts +7 -0
  89. package/lib/storeObservation/compiledHooks/index.d.ts.map +1 -0
  90. package/lib/storeObservation/compiledHooks/index.js +33 -0
  91. package/lib/storeObservation/compiledHooks/index.js.map +7 -0
  92. package/lib/storeObservation/compiledHooks/index.mjs +11 -0
  93. package/lib/storeObservation/compiledHooks/index.mjs.map +7 -0
  94. package/lib/storeObservation/compiledHooks/types.d.ts +15 -0
  95. package/lib/storeObservation/compiledHooks/types.d.ts.map +1 -0
  96. package/lib/storeObservation/compiledHooks/types.js +3 -0
  97. package/lib/storeObservation/compiledHooks/types.js.map +7 -0
  98. package/lib/storeObservation/compiledHooks/types.mjs +0 -0
  99. package/lib/storeObservation/compiledHooks/types.mjs.map +7 -0
  100. package/lib/storeObservation/compiledHooks/useCompiledFragment.d.ts +9 -0
  101. package/lib/storeObservation/compiledHooks/useCompiledFragment.d.ts.map +1 -0
  102. package/lib/storeObservation/compiledHooks/useCompiledFragment.js +80 -0
  103. package/lib/storeObservation/compiledHooks/useCompiledFragment.js.map +7 -0
  104. package/lib/storeObservation/compiledHooks/useCompiledFragment.mjs +61 -0
  105. package/lib/storeObservation/compiledHooks/useCompiledFragment.mjs.map +7 -0
  106. package/lib/storeObservation/compiledHooks/useCompiledLazyLoadQuery.d.ts +16 -0
  107. package/lib/storeObservation/compiledHooks/useCompiledLazyLoadQuery.d.ts.map +1 -0
  108. package/lib/storeObservation/compiledHooks/useCompiledLazyLoadQuery.js +92 -0
  109. package/lib/storeObservation/compiledHooks/useCompiledLazyLoadQuery.js.map +7 -0
  110. package/lib/storeObservation/compiledHooks/useCompiledLazyLoadQuery.mjs +73 -0
  111. package/lib/storeObservation/compiledHooks/useCompiledLazyLoadQuery.mjs.map +7 -0
  112. package/lib/storeObservation/compiledHooks/useCompiledPaginationFragment.d.ts +15 -0
  113. package/lib/storeObservation/compiledHooks/useCompiledPaginationFragment.d.ts.map +1 -0
  114. package/lib/storeObservation/compiledHooks/useCompiledPaginationFragment.js +176 -0
  115. package/lib/storeObservation/compiledHooks/useCompiledPaginationFragment.js.map +7 -0
  116. package/lib/storeObservation/compiledHooks/useCompiledPaginationFragment.mjs +157 -0
  117. package/lib/storeObservation/compiledHooks/useCompiledPaginationFragment.mjs.map +7 -0
  118. package/lib/storeObservation/compiledHooks/useCompiledRefetchableFragment.d.ts +23 -0
  119. package/lib/storeObservation/compiledHooks/useCompiledRefetchableFragment.d.ts.map +1 -0
  120. package/lib/storeObservation/compiledHooks/useCompiledRefetchableFragment.js +131 -0
  121. package/lib/storeObservation/compiledHooks/useCompiledRefetchableFragment.js.map +7 -0
  122. package/lib/storeObservation/compiledHooks/useCompiledRefetchableFragment.mjs +112 -0
  123. package/lib/storeObservation/compiledHooks/useCompiledRefetchableFragment.mjs.map +7 -0
  124. package/lib/storeObservation/compiledHooks/useDeepCompareMemoize.d.ts +12 -0
  125. package/lib/storeObservation/compiledHooks/useDeepCompareMemoize.d.ts.map +1 -0
  126. package/lib/storeObservation/compiledHooks/useDeepCompareMemoize.js +37 -0
  127. package/lib/storeObservation/compiledHooks/useDeepCompareMemoize.js.map +7 -0
  128. package/lib/storeObservation/compiledHooks/useDeepCompareMemoize.mjs +15 -0
  129. package/lib/storeObservation/compiledHooks/useDeepCompareMemoize.mjs.map +7 -0
  130. package/lib/storeObservation/compiledHooks/useForceUpdate.d.ts +3 -0
  131. package/lib/storeObservation/compiledHooks/useForceUpdate.d.ts.map +1 -0
  132. package/lib/storeObservation/compiledHooks/useForceUpdate.js +31 -0
  133. package/lib/storeObservation/compiledHooks/useForceUpdate.js.map +7 -0
  134. package/lib/storeObservation/compiledHooks/useForceUpdate.mjs +9 -0
  135. package/lib/storeObservation/compiledHooks/useForceUpdate.mjs.map +7 -0
  136. package/lib/storeObservation/compiledHooks.test.d.ts +2 -0
  137. package/lib/storeObservation/compiledHooks.test.d.ts.map +1 -0
  138. package/lib/storeObservation/compiledHooks.test.js +945 -0
  139. package/lib/storeObservation/compiledHooks.test.js.map +7 -0
  140. package/lib/storeObservation/compiledHooks.test.mjs +947 -0
  141. package/lib/storeObservation/compiledHooks.test.mjs.map +7 -0
  142. package/lib/storeObservation/createImportDocumentsTransform.d.ts +9 -0
  143. package/lib/storeObservation/createImportDocumentsTransform.d.ts.map +1 -0
  144. package/lib/storeObservation/createImportDocumentsTransform.js +107 -0
  145. package/lib/storeObservation/createImportDocumentsTransform.js.map +7 -0
  146. package/lib/storeObservation/createImportDocumentsTransform.mjs +99 -0
  147. package/lib/storeObservation/createImportDocumentsTransform.mjs.map +7 -0
  148. package/lib/storeObservation/createImportDocumentsTransform.test.d.ts +2 -0
  149. package/lib/storeObservation/createImportDocumentsTransform.test.d.ts.map +1 -0
  150. package/lib/storeObservation/createImportDocumentsTransform.test.js +62 -0
  151. package/lib/storeObservation/createImportDocumentsTransform.test.js.map +7 -0
  152. package/lib/storeObservation/createImportDocumentsTransform.test.mjs +50 -0
  153. package/lib/storeObservation/createImportDocumentsTransform.test.mjs.map +7 -0
  154. package/lib/storeObservation/fragmentReferencesFieldPolicy.d.ts +3 -0
  155. package/lib/storeObservation/fragmentReferencesFieldPolicy.d.ts.map +1 -0
  156. package/lib/storeObservation/fragmentReferencesFieldPolicy.js +13 -0
  157. package/lib/storeObservation/fragmentReferencesFieldPolicy.js.map +7 -0
  158. package/lib/storeObservation/fragmentReferencesFieldPolicy.mjs +7 -0
  159. package/lib/storeObservation/fragmentReferencesFieldPolicy.mjs.map +7 -0
  160. package/lib/storeObservation/fragmentReferencesFieldPolicy.test.d.ts +2 -0
  161. package/lib/storeObservation/fragmentReferencesFieldPolicy.test.d.ts.map +1 -0
  162. package/lib/storeObservation/fragmentReferencesFieldPolicy.test.js +123 -0
  163. package/lib/storeObservation/fragmentReferencesFieldPolicy.test.js.map +7 -0
  164. package/lib/storeObservation/fragmentReferencesFieldPolicy.test.mjs +109 -0
  165. package/lib/storeObservation/fragmentReferencesFieldPolicy.test.mjs.map +7 -0
  166. package/lib/storeObservation/index.d.ts +5 -0
  167. package/lib/storeObservation/index.d.ts.map +1 -0
  168. package/lib/storeObservation/index.js +23 -0
  169. package/lib/storeObservation/index.js.map +7 -0
  170. package/lib/storeObservation/index.mjs +5 -0
  171. package/lib/storeObservation/index.mjs.map +7 -0
  172. package/lib/storeObservation/nodeFromCacheFieldPolicy.d.ts +9 -0
  173. package/lib/storeObservation/nodeFromCacheFieldPolicy.d.ts.map +1 -0
  174. package/lib/storeObservation/nodeFromCacheFieldPolicy.js +48 -0
  175. package/lib/storeObservation/nodeFromCacheFieldPolicy.js.map +7 -0
  176. package/lib/storeObservation/nodeFromCacheFieldPolicy.mjs +26 -0
  177. package/lib/storeObservation/nodeFromCacheFieldPolicy.mjs.map +7 -0
  178. package/lib/storeObservation/nodeFromCacheFieldPolicy.test.d.ts +2 -0
  179. package/lib/storeObservation/nodeFromCacheFieldPolicy.test.d.ts.map +1 -0
  180. package/lib/storeObservation/nodeFromCacheFieldPolicy.test.js +112 -0
  181. package/lib/storeObservation/nodeFromCacheFieldPolicy.test.js.map +7 -0
  182. package/lib/storeObservation/nodeFromCacheFieldPolicy.test.mjs +96 -0
  183. package/lib/storeObservation/nodeFromCacheFieldPolicy.test.mjs.map +7 -0
  184. package/lib/storeObservation/shallowCompareFragmentReferences.d.ts +23 -0
  185. package/lib/storeObservation/shallowCompareFragmentReferences.d.ts.map +1 -0
  186. package/lib/storeObservation/shallowCompareFragmentReferences.js +50 -0
  187. package/lib/storeObservation/shallowCompareFragmentReferences.js.map +7 -0
  188. package/lib/storeObservation/shallowCompareFragmentReferences.mjs +28 -0
  189. package/lib/storeObservation/shallowCompareFragmentReferences.mjs.map +7 -0
  190. package/lib/storeObservation/typePolicies.d.ts +3 -0
  191. package/lib/storeObservation/typePolicies.d.ts.map +1 -0
  192. package/lib/storeObservation/typePolicies.js +47 -0
  193. package/lib/storeObservation/typePolicies.js.map +7 -0
  194. package/lib/storeObservation/typePolicies.mjs +25 -0
  195. package/lib/storeObservation/typePolicies.mjs.map +7 -0
  196. package/lib/types.d.ts +8 -0
  197. package/lib/types.d.ts.map +1 -1
  198. package/lib/types.js.map +7 -0
  199. package/lib/types.mjs.map +7 -0
  200. package/package.json +23 -18
  201. package/.eslintcache +0 -1
  202. package/CHANGELOG.json +0 -405
@@ -0,0 +1,73 @@
1
+ // src/storeObservation/compiledHooks/useCompiledLazyLoadQuery.ts
2
+ import {useRef, useEffect} from "react";
3
+ import {
4
+ useApolloClient,
5
+ useQuery as useApolloQuery
6
+ } from "@apollo/client";
7
+ import invariant from "invariant";
8
+ import {useDeepCompareMemoize} from "./useDeepCompareMemoize.mjs";
9
+ import {useForceUpdate} from "./useForceUpdate.mjs";
10
+ var ExecutionQueryHandler = class {
11
+ constructor(onComplete) {
12
+ this.onComplete = onComplete;
13
+ this.status = [true, void 0];
14
+ }
15
+ isIdle() {
16
+ return this.status[0] && this.querySubscription === void 0;
17
+ }
18
+ dispose() {
19
+ var _a;
20
+ (_a = this.querySubscription) == null ? void 0 : _a.unsubscribe();
21
+ this.querySubscription = void 0;
22
+ }
23
+ reset() {
24
+ this.dispose();
25
+ this.status = [true, void 0];
26
+ }
27
+ handleResult(error) {
28
+ this.status = [false, error];
29
+ this.dispose();
30
+ this.onComplete();
31
+ }
32
+ subscribe(observable) {
33
+ this.querySubscription = observable.subscribe(({error: err}) => {
34
+ this.handleResult(err);
35
+ }, (err) => {
36
+ this.handleResult(err);
37
+ });
38
+ }
39
+ };
40
+ function useExecutionQuery(executionQueryDocument, variables) {
41
+ const client = useApolloClient();
42
+ const forceUpdate = useForceUpdate();
43
+ const execution = useRef(new ExecutionQueryHandler(() => forceUpdate()));
44
+ useEffect(() => {
45
+ if (execution.current.isIdle()) {
46
+ execution.current.subscribe(client.watchQuery({
47
+ query: executionQueryDocument,
48
+ variables
49
+ }));
50
+ }
51
+ return () => {
52
+ execution.current.reset();
53
+ };
54
+ }, [executionQueryDocument, variables]);
55
+ return execution.current.status;
56
+ }
57
+ function useCompiledLazyLoadQuery(documents, options) {
58
+ const {watchQueryDocument} = documents;
59
+ invariant(watchQueryDocument, "useLazyLoadQuery(): Expected a `watchQueryDocument` to have been extracted. Did you forget to invoke the compiler?");
60
+ const {executionQueryDocument} = documents;
61
+ invariant(executionQueryDocument, "useLazyLoadQuery(): Expected a `executionQueryDocument` to have been extracted. Did you forget to invoke the compiler?");
62
+ const variables = useDeepCompareMemoize(options.variables);
63
+ const [loading, error] = useExecutionQuery(executionQueryDocument, variables);
64
+ const {data} = useApolloQuery(watchQueryDocument, {
65
+ variables,
66
+ fetchPolicy: "cache-only",
67
+ skip: loading || !!error
68
+ });
69
+ return {data, error};
70
+ }
71
+ export {
72
+ useCompiledLazyLoadQuery
73
+ };
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/storeObservation/compiledHooks/useCompiledLazyLoadQuery.ts"],
4
+ "sourcesContent": ["import { useRef, useEffect } from \"react\";\nimport {\n useApolloClient,\n useQuery as useApolloQuery,\n ObservableQuery,\n} from \"@apollo/client\";\nimport invariant from \"invariant\";\nimport { useDeepCompareMemoize } from \"./useDeepCompareMemoize\";\nimport { CompiledArtefactModule } from \"relay-compiler-language-graphitation\";\nimport { DocumentNode } from \"graphql\";\nimport { useForceUpdate } from \"./useForceUpdate\";\n\nclass ExecutionQueryHandler {\n public status: [loading: boolean, error?: Error];\n private querySubscription?: ZenObservable.Subscription;\n\n constructor(private onComplete: () => void) {\n this.status = [true, undefined];\n }\n\n public isIdle() {\n return this.status[0] && this.querySubscription === undefined;\n }\n\n public dispose() {\n this.querySubscription?.unsubscribe();\n this.querySubscription = undefined;\n }\n\n public reset() {\n this.dispose();\n this.status = [true, undefined];\n }\n\n private handleResult(error?: Error) {\n this.status = [false, error];\n this.dispose();\n this.onComplete();\n }\n\n public subscribe(observable: ObservableQuery) {\n this.querySubscription = observable.subscribe(\n ({ error: err }) => {\n this.handleResult(err);\n },\n (err) => {\n this.handleResult(err);\n }\n );\n }\n}\n\nfunction useExecutionQuery(\n executionQueryDocument: DocumentNode,\n variables: Record<string, any>\n): [loading: boolean, error?: Error] {\n const client = useApolloClient();\n const forceUpdate = useForceUpdate();\n const execution = useRef(new ExecutionQueryHandler(() => forceUpdate()));\n useEffect(() => {\n if (execution.current.isIdle()) {\n execution.current.subscribe(\n client.watchQuery({\n query: executionQueryDocument,\n variables,\n })\n );\n }\n return () => {\n execution.current.reset();\n };\n }, [executionQueryDocument, variables]);\n return execution.current.status;\n}\n\n/**\n * @todo Rewrite this to mimic Relay's preload APIs\n *\n * @param documents Compiled execute and watch query documents that are used to\n * setup a narrow observable for just the data selected by the\n * original fragment.\n * @param options An object containing a variables field.\n */\nexport function useCompiledLazyLoadQuery(\n documents: CompiledArtefactModule,\n options: { variables: Record<string, any> }\n): { data?: any; error?: Error } {\n const { watchQueryDocument } = documents;\n invariant(\n watchQueryDocument,\n \"useLazyLoadQuery(): Expected a `watchQueryDocument` to have been \" +\n \"extracted. Did you forget to invoke the compiler?\"\n );\n const { executionQueryDocument } = documents;\n invariant(\n executionQueryDocument,\n \"useLazyLoadQuery(): Expected a `executionQueryDocument` to have been \" +\n \"extracted. Did you forget to invoke the compiler?\"\n );\n const variables = useDeepCompareMemoize(options.variables);\n // First fetch all data needed for the entire tree...\n const [loading, error] = useExecutionQuery(executionQueryDocument, variables);\n // ...then fetch/watch data for only the calling component...\n const { data } = useApolloQuery(watchQueryDocument, {\n variables,\n fetchPolicy: \"cache-only\",\n // ...but only once finished loading.\n skip: loading || !!error,\n });\n return { data, error };\n}\n"],
5
+ "mappings": ";AAAA;AACA;AAAA;AAAA;AAAA;AAKA;AACA;AAGA;AAEA,kCAA4B;AAAA,EAI1B,YAAoB,YAAwB;AAAxB;AAClB,SAAK,SAAS,CAAC,MAAM;AAAA;AAAA,EAGhB,SAAS;AACd,WAAO,KAAK,OAAO,MAAM,KAAK,sBAAsB;AAAA;AAAA,EAG/C,UAAU;AAxBnB;AAyBI,eAAK,sBAAL,mBAAwB;AACxB,SAAK,oBAAoB;AAAA;AAAA,EAGpB,QAAQ;AACb,SAAK;AACL,SAAK,SAAS,CAAC,MAAM;AAAA;AAAA,EAGf,aAAa,OAAe;AAClC,SAAK,SAAS,CAAC,OAAO;AACtB,SAAK;AACL,SAAK;AAAA;AAAA,EAGA,UAAU,YAA6B;AAC5C,SAAK,oBAAoB,WAAW,UAClC,CAAC,CAAE,OAAO,SAAU;AAClB,WAAK,aAAa;AAAA,OAEpB,CAAC,QAAQ;AACP,WAAK,aAAa;AAAA;AAAA;AAAA;AAM1B,2BACE,wBACA,WACmC;AACnC,QAAM,SAAS;AACf,QAAM,cAAc;AACpB,QAAM,YAAY,OAAO,IAAI,sBAAsB,MAAM;AACzD,YAAU,MAAM;AACd,QAAI,UAAU,QAAQ,UAAU;AAC9B,gBAAU,QAAQ,UAChB,OAAO,WAAW;AAAA,QAChB,OAAO;AAAA,QACP;AAAA;AAAA;AAIN,WAAO,MAAM;AACX,gBAAU,QAAQ;AAAA;AAAA,KAEnB,CAAC,wBAAwB;AAC5B,SAAO,UAAU,QAAQ;AAAA;AAWpB,kCACL,WACA,SAC+B;AAC/B,QAAM,CAAE,sBAAuB;AAC/B,YACE,oBACA;AAGF,QAAM,CAAE,0BAA2B;AACnC,YACE,wBACA;AAGF,QAAM,YAAY,sBAAsB,QAAQ;AAEhD,QAAM,CAAC,SAAS,SAAS,kBAAkB,wBAAwB;AAEnE,QAAM,CAAE,QAAS,eAAe,oBAAoB;AAAA,IAClD;AAAA,IACA,aAAa;AAAA,IAEb,MAAM,WAAW,CAAC,CAAC;AAAA;AAErB,SAAO,CAAE,MAAM;AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,15 @@
1
+ import { CompiledArtefactModule } from "relay-compiler-language-graphitation";
2
+ import { FragmentReference } from "./types";
3
+ import type { RefetchFn, Disposable, RefetchOptions } from "./useCompiledRefetchableFragment";
4
+ export declare type PaginationFn = (count: number, options?: RefetchOptions) => Disposable;
5
+ export declare function useCompiledPaginationFragment(documents: CompiledArtefactModule, fragmentReference: FragmentReference): {
6
+ data: any;
7
+ loadNext: PaginationFn;
8
+ loadPrevious: PaginationFn;
9
+ hasNext: boolean;
10
+ hasPrevious: boolean;
11
+ isLoadingNext: boolean;
12
+ isLoadingPrevious: boolean;
13
+ refetch: RefetchFn;
14
+ };
15
+ //# sourceMappingURL=useCompiledPaginationFragment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCompiledPaginationFragment.d.ts","sourceRoot":"","sources":["../../../src/storeObservation/compiledHooks/useCompiledPaginationFragment.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EACV,SAAS,EACT,UAAU,EAEV,cAAc,EACf,MAAM,kCAAkC,CAAC;AAI1C,oBAAY,YAAY,GAAG,CACzB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,cAAc,KACrB,UAAU,CAAC;AAmLhB,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,sBAAsB,EACjC,iBAAiB,EAAE,iBAAiB,GACnC;IACD,IAAI,EAAE,GAAG,CAAC;IACV,QAAQ,EAAE,YAAY,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,OAAO,EAAE,SAAS,CAAC;CACpB,CA2DA"}
@@ -0,0 +1,176 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getProtoOf = Object.getPrototypeOf;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {enumerable: true, configurable: true, writable: true, value}) : obj[key] = value;
10
+ var __objSpread = (a, b) => {
11
+ for (var prop in b || (b = {}))
12
+ if (__hasOwnProp.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ if (__getOwnPropSymbols)
15
+ for (var prop of __getOwnPropSymbols(b)) {
16
+ if (__propIsEnum.call(b, prop))
17
+ __defNormalProp(a, prop, b[prop]);
18
+ }
19
+ return a;
20
+ };
21
+ var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
22
+ var __export = (target, all) => {
23
+ for (var name in all)
24
+ __defProp(target, name, {get: all[name], enumerable: true});
25
+ };
26
+ var __reExport = (target, module2, desc) => {
27
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
28
+ for (let key of __getOwnPropNames(module2))
29
+ if (!__hasOwnProp.call(target, key) && key !== "default")
30
+ __defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
31
+ }
32
+ return target;
33
+ };
34
+ var __toModule = (module2) => {
35
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
36
+ };
37
+ __markAsModule(exports);
38
+ __export(exports, {
39
+ useCompiledPaginationFragment: () => useCompiledPaginationFragment
40
+ });
41
+ var import_react = __toModule(require("react"));
42
+ var import_client = __toModule(require("@apollo/client"));
43
+ var import_invariant = __toModule(require("invariant"));
44
+ var import_useCompiledRefetchableFragment = __toModule(require("./useCompiledRefetchableFragment"));
45
+ function useLoadMore({
46
+ fragmentReference,
47
+ refetch,
48
+ metadata,
49
+ executionQueryDocument,
50
+ cache,
51
+ countVariable,
52
+ cursorVariable,
53
+ connectionSelectionPath,
54
+ cursorValue,
55
+ updater
56
+ }) {
57
+ const [isLoadingMore, setIsLoadingMore] = (0, import_react.useState)(false);
58
+ const loadPage = (0, import_react.useCallback)((countValue, options) => {
59
+ (0, import_invariant.default)(countVariable, "usePaginationFragment(): Expected a count variable to exist");
60
+ (0, import_invariant.default)(cursorVariable, "usePaginationFragment(): Expected a cursor variable to exist");
61
+ (0, import_invariant.default)(cursorValue, "usePaginationFragment(): Expected a cursor value to exist");
62
+ const previousVariables = __objSpread(__objSpread({}, fragmentReference.__fragments), {
63
+ id: fragmentReference.id
64
+ });
65
+ const newVariables = __objSpread(__objSpread({}, previousVariables), {
66
+ [countVariable]: countValue,
67
+ [cursorVariable]: cursorValue
68
+ });
69
+ const refetchOptions = {
70
+ fetchPolicy: "no-cache",
71
+ UNSTABLE_onCompletedWithData: (error, data) => {
72
+ var _a;
73
+ setIsLoadingMore(false);
74
+ if (!error) {
75
+ (0, import_invariant.default)(data, "usePaginationFragment(): Expected to have response data");
76
+ const newData = metadata.rootSelection ? data[metadata.rootSelection] : data;
77
+ const mainFragment = metadata.mainFragment;
78
+ (0, import_invariant.default)(mainFragment, "usePaginationFragment(): Expected mainFragment metadata");
79
+ const cacheSelector = {
80
+ id: fragmentReference.id ? `${mainFragment.typeCondition}:${fragmentReference.id}` : "ROOT_QUERY",
81
+ variables: previousVariables,
82
+ fragmentName: mainFragment.name,
83
+ fragment: {
84
+ kind: "Document",
85
+ definitions: executionQueryDocument.definitions.filter((def) => def.kind === "FragmentDefinition")
86
+ }
87
+ };
88
+ const existingData = cache.readFragment(cacheSelector);
89
+ const newCacheData = mergeEdges(connectionSelectionPath, newData, existingData, updater);
90
+ cache.writeFragment(__objSpread(__objSpread({}, cacheSelector), {
91
+ variables: newVariables,
92
+ data: newCacheData
93
+ }));
94
+ }
95
+ (_a = options == null ? void 0 : options.onCompleted) == null ? void 0 : _a.call(options, error);
96
+ }
97
+ };
98
+ const disposable = refetch(newVariables, refetchOptions);
99
+ setIsLoadingMore(true);
100
+ return disposable;
101
+ }, [
102
+ fragmentReference.id,
103
+ fragmentReference.__fragments,
104
+ refetch,
105
+ metadata,
106
+ executionQueryDocument,
107
+ cache,
108
+ countVariable,
109
+ cursorVariable,
110
+ connectionSelectionPath,
111
+ cursorValue
112
+ ]);
113
+ return [loadPage, isLoadingMore];
114
+ }
115
+ function getValueAtSelectionPath(data, selectionPath) {
116
+ let object = data;
117
+ selectionPath.forEach((field) => {
118
+ object = object[field];
119
+ (0, import_invariant.default)(object, "Expected path to connection in response to exist");
120
+ });
121
+ return object;
122
+ }
123
+ function getPageInfo(data, selectionPath) {
124
+ const object = getValueAtSelectionPath(data, selectionPath);
125
+ const pageInfo = object.pageInfo;
126
+ (0, import_invariant.default)(pageInfo, "Expected to find the connection's page info object");
127
+ return pageInfo;
128
+ }
129
+ function mergeEdges(connectionPath, destination, source, updater) {
130
+ const edgesPath = [...connectionPath, "edges"];
131
+ const existingEdges = getValueAtSelectionPath(source, edgesPath);
132
+ const newEdges = getValueAtSelectionPath(destination, edgesPath);
133
+ const allEdges = updater(existingEdges, newEdges);
134
+ const connection = getValueAtSelectionPath(destination, connectionPath);
135
+ connection["edges"] = allEdges;
136
+ return destination;
137
+ }
138
+ function useCompiledPaginationFragment(documents, fragmentReference) {
139
+ const {executionQueryDocument, metadata} = documents;
140
+ (0, import_invariant.default)(metadata && metadata.mainFragment, "usePaginationFragment(): Expected metadata to have been extracted from the fragment. Did you forget to invoke the compiler?");
141
+ (0, import_invariant.default)(executionQueryDocument, "usePaginationFragment(): Expected fragment `%s` to be refetchable when using `usePaginationFragment`. Did you forget to add a @refetchable directive to the fragment?", metadata.mainFragment.name);
142
+ const connectionMetadata = metadata.connection;
143
+ (0, import_invariant.default)(connectionMetadata, "usePaginationFragment: Expected fragment `%s` to include a connection when using `usePaginationFragment`. Did you forget to add a @connection directive to the connection field in the fragment?", metadata.mainFragment.name);
144
+ const [data, refetch] = (0, import_useCompiledRefetchableFragment.useCompiledRefetchableFragment)(documents, fragmentReference);
145
+ const commonPaginationParams = {
146
+ fragmentReference,
147
+ refetch,
148
+ metadata,
149
+ executionQueryDocument,
150
+ cache: (0, import_client.useApolloClient)().cache,
151
+ connectionSelectionPath: connectionMetadata.selectionPath
152
+ };
153
+ const pageInfo = getPageInfo(data, connectionMetadata.selectionPath);
154
+ const [loadNext, isLoadingNext] = useLoadMore(__objSpread(__objSpread({}, commonPaginationParams), {
155
+ countVariable: connectionMetadata.forwardCountVariable,
156
+ cursorVariable: connectionMetadata.forwardCursorVariable,
157
+ cursorValue: pageInfo == null ? void 0 : pageInfo.endCursor,
158
+ updater: (existing, incoming) => [...existing, ...incoming]
159
+ }));
160
+ const [loadPrevious, isLoadingPrevious] = useLoadMore(__objSpread(__objSpread({}, commonPaginationParams), {
161
+ countVariable: connectionMetadata.backwardCountVariable,
162
+ cursorVariable: connectionMetadata.backwardCursorVariable,
163
+ cursorValue: pageInfo == null ? void 0 : pageInfo.startCursor,
164
+ updater: (existing, incoming) => [...incoming, ...existing]
165
+ }));
166
+ return {
167
+ data,
168
+ refetch,
169
+ hasNext: !!(pageInfo == null ? void 0 : pageInfo.hasNextPage),
170
+ hasPrevious: !!(pageInfo == null ? void 0 : pageInfo.hasPreviousPage),
171
+ isLoadingNext,
172
+ isLoadingPrevious,
173
+ loadNext,
174
+ loadPrevious
175
+ };
176
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/storeObservation/compiledHooks/useCompiledPaginationFragment.ts"],
4
+ "sourcesContent": ["import { useState, useRef, useEffect, useCallback } from \"react\";\nimport { DataProxy, useApolloClient } from \"@apollo/client\";\nimport invariant from \"invariant\";\nimport { CompiledArtefactModule } from \"relay-compiler-language-graphitation\";\nimport { useCompiledRefetchableFragment } from \"./useCompiledRefetchableFragment\";\nimport { FragmentReference } from \"./types\";\nimport type {\n RefetchFn,\n Disposable,\n PrivateRefetchOptions,\n RefetchOptions,\n} from \"./useCompiledRefetchableFragment\";\nimport type { Metadata } from \"relay-compiler-language-graphitation\";\nimport type { DocumentNode } from \"graphql\";\n\nexport type PaginationFn = (\n count: number,\n options?: RefetchOptions\n) => Disposable;\n\ninterface PaginationParams {\n fragmentReference: FragmentReference;\n refetch: RefetchFn;\n metadata: Metadata;\n executionQueryDocument: DocumentNode;\n cache: DataProxy;\n countVariable: string | undefined;\n cursorVariable: string | undefined;\n connectionSelectionPath: string[];\n cursorValue: string | undefined;\n updater: <T>(existing: T[], incoming: T[]) => T[];\n}\n\nfunction useLoadMore({\n fragmentReference,\n refetch,\n metadata,\n executionQueryDocument,\n cache,\n countVariable,\n cursorVariable,\n connectionSelectionPath,\n cursorValue,\n updater,\n}: PaginationParams): [loadPage: PaginationFn, isLoadingMore: boolean] {\n const [isLoadingMore, setIsLoadingMore] = useState(false);\n const loadPage = useCallback<PaginationFn>(\n (countValue, options) => {\n invariant(\n countVariable,\n \"usePaginationFragment(): Expected a count variable to exist\"\n );\n invariant(\n cursorVariable,\n \"usePaginationFragment(): Expected a cursor variable to exist\"\n );\n invariant(\n cursorValue,\n \"usePaginationFragment(): Expected a cursor value to exist\"\n );\n const previousVariables = {\n ...fragmentReference.__fragments,\n id: fragmentReference.id,\n };\n const newVariables = {\n ...previousVariables,\n [countVariable]: countValue,\n [cursorVariable]: cursorValue,\n };\n const refetchOptions: PrivateRefetchOptions = {\n fetchPolicy: \"no-cache\",\n UNSTABLE_onCompletedWithData: (error, data) => {\n // NOTE: We can do this now already, because `refetch` wraps the\n // onCompleted callback in a batchedUpdates callback.\n setIsLoadingMore(false);\n\n if (!error) {\n invariant(\n data,\n \"usePaginationFragment(): Expected to have response data\"\n );\n const newData = metadata.rootSelection\n ? data[metadata.rootSelection]\n : data;\n const mainFragment = metadata.mainFragment;\n invariant(\n mainFragment,\n \"usePaginationFragment(): Expected mainFragment metadata\"\n );\n const cacheSelector: DataProxy.Fragment<any, any> = {\n id: fragmentReference.id\n ? `${mainFragment.typeCondition}:${fragmentReference.id}`\n : \"ROOT_QUERY\",\n variables: previousVariables,\n fragmentName: mainFragment.name,\n // Create new document with operation filtered out.\n fragment: {\n kind: \"Document\",\n definitions: executionQueryDocument.definitions.filter(\n (def) => def.kind === \"FragmentDefinition\"\n ),\n },\n };\n /**\n * Note: Even though we already have the latest data from the\n * useCompiledFragment hook, we can't really use that as it may contain\n * __fragments fields and we don't want to write those to the cache. If\n * we figure out a way from a field-policy's merge function to not write\n * to the cache, then that would be preferable.\n */\n const existingData = cache.readFragment(cacheSelector);\n const newCacheData = mergeEdges(\n connectionSelectionPath,\n newData,\n existingData,\n updater\n );\n cache.writeFragment({\n ...cacheSelector,\n variables: newVariables,\n data: newCacheData,\n });\n }\n\n options?.onCompleted?.(error);\n },\n };\n // TODO: Measure if invoking `refetch` leads to React updates and if it\n // makes sense to wrap it and the following setIsLoadingMore(true)\n // call in a batchedUpdates callback.\n const disposable = refetch(\n newVariables,\n refetchOptions as RefetchOptions\n );\n setIsLoadingMore(true);\n return disposable;\n },\n [\n fragmentReference.id,\n fragmentReference.__fragments,\n refetch,\n metadata,\n executionQueryDocument,\n cache,\n countVariable,\n cursorVariable,\n connectionSelectionPath,\n cursorValue,\n ]\n );\n return [loadPage, isLoadingMore];\n}\n\nfunction getValueAtSelectionPath(\n data: Record<string, any>,\n selectionPath: string[]\n): any {\n let object: Record<string, any> = data;\n selectionPath.forEach((field) => {\n object = object[field];\n invariant(object, \"Expected path to connection in response to exist\");\n });\n return object;\n}\n\nfunction getPageInfo(\n data: Record<string, any>,\n selectionPath: string[]\n): {\n startCursor?: string;\n endCursor?: string;\n hasPreviousPage?: boolean;\n hasNextPage?: boolean;\n} {\n const object = getValueAtSelectionPath(data, selectionPath);\n const pageInfo = object.pageInfo;\n invariant(pageInfo, \"Expected to find the connection's page info object\");\n return pageInfo;\n}\n\nfunction mergeEdges(\n connectionPath: string[],\n destination: {},\n source: {},\n updater: <T>(existing: T[], incoming: T[]) => T[]\n) {\n const edgesPath = [...connectionPath, \"edges\"];\n const existingEdges = getValueAtSelectionPath(source, edgesPath);\n const newEdges = getValueAtSelectionPath(destination, edgesPath);\n const allEdges = updater(existingEdges, newEdges);\n\n const connection = getValueAtSelectionPath(destination, connectionPath);\n connection[\"edges\"] = allEdges;\n\n return destination;\n}\n\nexport function useCompiledPaginationFragment(\n documents: CompiledArtefactModule,\n fragmentReference: FragmentReference\n): {\n data: any;\n loadNext: PaginationFn;\n loadPrevious: PaginationFn;\n hasNext: boolean;\n hasPrevious: boolean;\n isLoadingNext: boolean;\n isLoadingPrevious: boolean;\n refetch: RefetchFn;\n} {\n const { executionQueryDocument, metadata } = documents;\n invariant(\n metadata && metadata.mainFragment,\n \"usePaginationFragment(): Expected metadata to have been extracted from \" +\n \"the fragment. Did you forget to invoke the compiler?\"\n );\n invariant(\n executionQueryDocument,\n \"usePaginationFragment(): Expected fragment `%s` to be refetchable when \" +\n \"using `usePaginationFragment`. Did you forget to add a @refetchable \" +\n \"directive to the fragment?\",\n metadata.mainFragment.name\n );\n const connectionMetadata = metadata.connection;\n invariant(\n connectionMetadata,\n \"usePaginationFragment: Expected fragment `%s` to include a \" +\n \"connection when using `usePaginationFragment`. Did you forget to add a @connection \" +\n \"directive to the connection field in the fragment?\",\n metadata.mainFragment.name\n );\n const [data, refetch] = useCompiledRefetchableFragment(\n documents,\n fragmentReference\n );\n const commonPaginationParams = {\n fragmentReference,\n refetch,\n metadata,\n executionQueryDocument,\n cache: useApolloClient().cache,\n connectionSelectionPath: connectionMetadata.selectionPath,\n };\n const pageInfo = getPageInfo(data, connectionMetadata.selectionPath);\n const [loadNext, isLoadingNext] = useLoadMore({\n ...commonPaginationParams,\n countVariable: connectionMetadata.forwardCountVariable,\n cursorVariable: connectionMetadata.forwardCursorVariable,\n cursorValue: pageInfo?.endCursor,\n updater: (existing, incoming) => [...existing, ...incoming],\n });\n const [loadPrevious, isLoadingPrevious] = useLoadMore({\n ...commonPaginationParams,\n countVariable: connectionMetadata.backwardCountVariable,\n cursorVariable: connectionMetadata.backwardCursorVariable,\n cursorValue: pageInfo?.startCursor,\n updater: (existing, incoming) => [...incoming, ...existing],\n });\n return {\n data,\n refetch,\n hasNext: !!pageInfo?.hasNextPage,\n hasPrevious: !!pageInfo?.hasPreviousPage,\n isLoadingNext,\n isLoadingPrevious,\n loadNext,\n loadPrevious,\n };\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,157 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
3
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
4
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {enumerable: true, configurable: true, writable: true, value}) : obj[key] = value;
6
+ var __objSpread = (a, b) => {
7
+ for (var prop in b || (b = {}))
8
+ if (__hasOwnProp.call(b, prop))
9
+ __defNormalProp(a, prop, b[prop]);
10
+ if (__getOwnPropSymbols)
11
+ for (var prop of __getOwnPropSymbols(b)) {
12
+ if (__propIsEnum.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ }
15
+ return a;
16
+ };
17
+
18
+ // src/storeObservation/compiledHooks/useCompiledPaginationFragment.ts
19
+ import {useState, useCallback} from "react";
20
+ import {useApolloClient} from "@apollo/client";
21
+ import invariant from "invariant";
22
+ import {useCompiledRefetchableFragment} from "./useCompiledRefetchableFragment.mjs";
23
+ function useLoadMore({
24
+ fragmentReference,
25
+ refetch,
26
+ metadata,
27
+ executionQueryDocument,
28
+ cache,
29
+ countVariable,
30
+ cursorVariable,
31
+ connectionSelectionPath,
32
+ cursorValue,
33
+ updater
34
+ }) {
35
+ const [isLoadingMore, setIsLoadingMore] = useState(false);
36
+ const loadPage = useCallback((countValue, options) => {
37
+ invariant(countVariable, "usePaginationFragment(): Expected a count variable to exist");
38
+ invariant(cursorVariable, "usePaginationFragment(): Expected a cursor variable to exist");
39
+ invariant(cursorValue, "usePaginationFragment(): Expected a cursor value to exist");
40
+ const previousVariables = __objSpread(__objSpread({}, fragmentReference.__fragments), {
41
+ id: fragmentReference.id
42
+ });
43
+ const newVariables = __objSpread(__objSpread({}, previousVariables), {
44
+ [countVariable]: countValue,
45
+ [cursorVariable]: cursorValue
46
+ });
47
+ const refetchOptions = {
48
+ fetchPolicy: "no-cache",
49
+ UNSTABLE_onCompletedWithData: (error, data) => {
50
+ var _a;
51
+ setIsLoadingMore(false);
52
+ if (!error) {
53
+ invariant(data, "usePaginationFragment(): Expected to have response data");
54
+ const newData = metadata.rootSelection ? data[metadata.rootSelection] : data;
55
+ const mainFragment = metadata.mainFragment;
56
+ invariant(mainFragment, "usePaginationFragment(): Expected mainFragment metadata");
57
+ const cacheSelector = {
58
+ id: fragmentReference.id ? `${mainFragment.typeCondition}:${fragmentReference.id}` : "ROOT_QUERY",
59
+ variables: previousVariables,
60
+ fragmentName: mainFragment.name,
61
+ fragment: {
62
+ kind: "Document",
63
+ definitions: executionQueryDocument.definitions.filter((def) => def.kind === "FragmentDefinition")
64
+ }
65
+ };
66
+ const existingData = cache.readFragment(cacheSelector);
67
+ const newCacheData = mergeEdges(connectionSelectionPath, newData, existingData, updater);
68
+ cache.writeFragment(__objSpread(__objSpread({}, cacheSelector), {
69
+ variables: newVariables,
70
+ data: newCacheData
71
+ }));
72
+ }
73
+ (_a = options == null ? void 0 : options.onCompleted) == null ? void 0 : _a.call(options, error);
74
+ }
75
+ };
76
+ const disposable = refetch(newVariables, refetchOptions);
77
+ setIsLoadingMore(true);
78
+ return disposable;
79
+ }, [
80
+ fragmentReference.id,
81
+ fragmentReference.__fragments,
82
+ refetch,
83
+ metadata,
84
+ executionQueryDocument,
85
+ cache,
86
+ countVariable,
87
+ cursorVariable,
88
+ connectionSelectionPath,
89
+ cursorValue
90
+ ]);
91
+ return [loadPage, isLoadingMore];
92
+ }
93
+ function getValueAtSelectionPath(data, selectionPath) {
94
+ let object = data;
95
+ selectionPath.forEach((field) => {
96
+ object = object[field];
97
+ invariant(object, "Expected path to connection in response to exist");
98
+ });
99
+ return object;
100
+ }
101
+ function getPageInfo(data, selectionPath) {
102
+ const object = getValueAtSelectionPath(data, selectionPath);
103
+ const pageInfo = object.pageInfo;
104
+ invariant(pageInfo, "Expected to find the connection's page info object");
105
+ return pageInfo;
106
+ }
107
+ function mergeEdges(connectionPath, destination, source, updater) {
108
+ const edgesPath = [...connectionPath, "edges"];
109
+ const existingEdges = getValueAtSelectionPath(source, edgesPath);
110
+ const newEdges = getValueAtSelectionPath(destination, edgesPath);
111
+ const allEdges = updater(existingEdges, newEdges);
112
+ const connection = getValueAtSelectionPath(destination, connectionPath);
113
+ connection["edges"] = allEdges;
114
+ return destination;
115
+ }
116
+ function useCompiledPaginationFragment(documents, fragmentReference) {
117
+ const {executionQueryDocument, metadata} = documents;
118
+ invariant(metadata && metadata.mainFragment, "usePaginationFragment(): Expected metadata to have been extracted from the fragment. Did you forget to invoke the compiler?");
119
+ invariant(executionQueryDocument, "usePaginationFragment(): Expected fragment `%s` to be refetchable when using `usePaginationFragment`. Did you forget to add a @refetchable directive to the fragment?", metadata.mainFragment.name);
120
+ const connectionMetadata = metadata.connection;
121
+ invariant(connectionMetadata, "usePaginationFragment: Expected fragment `%s` to include a connection when using `usePaginationFragment`. Did you forget to add a @connection directive to the connection field in the fragment?", metadata.mainFragment.name);
122
+ const [data, refetch] = useCompiledRefetchableFragment(documents, fragmentReference);
123
+ const commonPaginationParams = {
124
+ fragmentReference,
125
+ refetch,
126
+ metadata,
127
+ executionQueryDocument,
128
+ cache: useApolloClient().cache,
129
+ connectionSelectionPath: connectionMetadata.selectionPath
130
+ };
131
+ const pageInfo = getPageInfo(data, connectionMetadata.selectionPath);
132
+ const [loadNext, isLoadingNext] = useLoadMore(__objSpread(__objSpread({}, commonPaginationParams), {
133
+ countVariable: connectionMetadata.forwardCountVariable,
134
+ cursorVariable: connectionMetadata.forwardCursorVariable,
135
+ cursorValue: pageInfo == null ? void 0 : pageInfo.endCursor,
136
+ updater: (existing, incoming) => [...existing, ...incoming]
137
+ }));
138
+ const [loadPrevious, isLoadingPrevious] = useLoadMore(__objSpread(__objSpread({}, commonPaginationParams), {
139
+ countVariable: connectionMetadata.backwardCountVariable,
140
+ cursorVariable: connectionMetadata.backwardCursorVariable,
141
+ cursorValue: pageInfo == null ? void 0 : pageInfo.startCursor,
142
+ updater: (existing, incoming) => [...incoming, ...existing]
143
+ }));
144
+ return {
145
+ data,
146
+ refetch,
147
+ hasNext: !!(pageInfo == null ? void 0 : pageInfo.hasNextPage),
148
+ hasPrevious: !!(pageInfo == null ? void 0 : pageInfo.hasPreviousPage),
149
+ isLoadingNext,
150
+ isLoadingPrevious,
151
+ loadNext,
152
+ loadPrevious
153
+ };
154
+ }
155
+ export {
156
+ useCompiledPaginationFragment
157
+ };
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/storeObservation/compiledHooks/useCompiledPaginationFragment.ts"],
4
+ "sourcesContent": ["import { useState, useRef, useEffect, useCallback } from \"react\";\nimport { DataProxy, useApolloClient } from \"@apollo/client\";\nimport invariant from \"invariant\";\nimport { CompiledArtefactModule } from \"relay-compiler-language-graphitation\";\nimport { useCompiledRefetchableFragment } from \"./useCompiledRefetchableFragment\";\nimport { FragmentReference } from \"./types\";\nimport type {\n RefetchFn,\n Disposable,\n PrivateRefetchOptions,\n RefetchOptions,\n} from \"./useCompiledRefetchableFragment\";\nimport type { Metadata } from \"relay-compiler-language-graphitation\";\nimport type { DocumentNode } from \"graphql\";\n\nexport type PaginationFn = (\n count: number,\n options?: RefetchOptions\n) => Disposable;\n\ninterface PaginationParams {\n fragmentReference: FragmentReference;\n refetch: RefetchFn;\n metadata: Metadata;\n executionQueryDocument: DocumentNode;\n cache: DataProxy;\n countVariable: string | undefined;\n cursorVariable: string | undefined;\n connectionSelectionPath: string[];\n cursorValue: string | undefined;\n updater: <T>(existing: T[], incoming: T[]) => T[];\n}\n\nfunction useLoadMore({\n fragmentReference,\n refetch,\n metadata,\n executionQueryDocument,\n cache,\n countVariable,\n cursorVariable,\n connectionSelectionPath,\n cursorValue,\n updater,\n}: PaginationParams): [loadPage: PaginationFn, isLoadingMore: boolean] {\n const [isLoadingMore, setIsLoadingMore] = useState(false);\n const loadPage = useCallback<PaginationFn>(\n (countValue, options) => {\n invariant(\n countVariable,\n \"usePaginationFragment(): Expected a count variable to exist\"\n );\n invariant(\n cursorVariable,\n \"usePaginationFragment(): Expected a cursor variable to exist\"\n );\n invariant(\n cursorValue,\n \"usePaginationFragment(): Expected a cursor value to exist\"\n );\n const previousVariables = {\n ...fragmentReference.__fragments,\n id: fragmentReference.id,\n };\n const newVariables = {\n ...previousVariables,\n [countVariable]: countValue,\n [cursorVariable]: cursorValue,\n };\n const refetchOptions: PrivateRefetchOptions = {\n fetchPolicy: \"no-cache\",\n UNSTABLE_onCompletedWithData: (error, data) => {\n // NOTE: We can do this now already, because `refetch` wraps the\n // onCompleted callback in a batchedUpdates callback.\n setIsLoadingMore(false);\n\n if (!error) {\n invariant(\n data,\n \"usePaginationFragment(): Expected to have response data\"\n );\n const newData = metadata.rootSelection\n ? data[metadata.rootSelection]\n : data;\n const mainFragment = metadata.mainFragment;\n invariant(\n mainFragment,\n \"usePaginationFragment(): Expected mainFragment metadata\"\n );\n const cacheSelector: DataProxy.Fragment<any, any> = {\n id: fragmentReference.id\n ? `${mainFragment.typeCondition}:${fragmentReference.id}`\n : \"ROOT_QUERY\",\n variables: previousVariables,\n fragmentName: mainFragment.name,\n // Create new document with operation filtered out.\n fragment: {\n kind: \"Document\",\n definitions: executionQueryDocument.definitions.filter(\n (def) => def.kind === \"FragmentDefinition\"\n ),\n },\n };\n /**\n * Note: Even though we already have the latest data from the\n * useCompiledFragment hook, we can't really use that as it may contain\n * __fragments fields and we don't want to write those to the cache. If\n * we figure out a way from a field-policy's merge function to not write\n * to the cache, then that would be preferable.\n */\n const existingData = cache.readFragment(cacheSelector);\n const newCacheData = mergeEdges(\n connectionSelectionPath,\n newData,\n existingData,\n updater\n );\n cache.writeFragment({\n ...cacheSelector,\n variables: newVariables,\n data: newCacheData,\n });\n }\n\n options?.onCompleted?.(error);\n },\n };\n // TODO: Measure if invoking `refetch` leads to React updates and if it\n // makes sense to wrap it and the following setIsLoadingMore(true)\n // call in a batchedUpdates callback.\n const disposable = refetch(\n newVariables,\n refetchOptions as RefetchOptions\n );\n setIsLoadingMore(true);\n return disposable;\n },\n [\n fragmentReference.id,\n fragmentReference.__fragments,\n refetch,\n metadata,\n executionQueryDocument,\n cache,\n countVariable,\n cursorVariable,\n connectionSelectionPath,\n cursorValue,\n ]\n );\n return [loadPage, isLoadingMore];\n}\n\nfunction getValueAtSelectionPath(\n data: Record<string, any>,\n selectionPath: string[]\n): any {\n let object: Record<string, any> = data;\n selectionPath.forEach((field) => {\n object = object[field];\n invariant(object, \"Expected path to connection in response to exist\");\n });\n return object;\n}\n\nfunction getPageInfo(\n data: Record<string, any>,\n selectionPath: string[]\n): {\n startCursor?: string;\n endCursor?: string;\n hasPreviousPage?: boolean;\n hasNextPage?: boolean;\n} {\n const object = getValueAtSelectionPath(data, selectionPath);\n const pageInfo = object.pageInfo;\n invariant(pageInfo, \"Expected to find the connection's page info object\");\n return pageInfo;\n}\n\nfunction mergeEdges(\n connectionPath: string[],\n destination: {},\n source: {},\n updater: <T>(existing: T[], incoming: T[]) => T[]\n) {\n const edgesPath = [...connectionPath, \"edges\"];\n const existingEdges = getValueAtSelectionPath(source, edgesPath);\n const newEdges = getValueAtSelectionPath(destination, edgesPath);\n const allEdges = updater(existingEdges, newEdges);\n\n const connection = getValueAtSelectionPath(destination, connectionPath);\n connection[\"edges\"] = allEdges;\n\n return destination;\n}\n\nexport function useCompiledPaginationFragment(\n documents: CompiledArtefactModule,\n fragmentReference: FragmentReference\n): {\n data: any;\n loadNext: PaginationFn;\n loadPrevious: PaginationFn;\n hasNext: boolean;\n hasPrevious: boolean;\n isLoadingNext: boolean;\n isLoadingPrevious: boolean;\n refetch: RefetchFn;\n} {\n const { executionQueryDocument, metadata } = documents;\n invariant(\n metadata && metadata.mainFragment,\n \"usePaginationFragment(): Expected metadata to have been extracted from \" +\n \"the fragment. Did you forget to invoke the compiler?\"\n );\n invariant(\n executionQueryDocument,\n \"usePaginationFragment(): Expected fragment `%s` to be refetchable when \" +\n \"using `usePaginationFragment`. Did you forget to add a @refetchable \" +\n \"directive to the fragment?\",\n metadata.mainFragment.name\n );\n const connectionMetadata = metadata.connection;\n invariant(\n connectionMetadata,\n \"usePaginationFragment: Expected fragment `%s` to include a \" +\n \"connection when using `usePaginationFragment`. Did you forget to add a @connection \" +\n \"directive to the connection field in the fragment?\",\n metadata.mainFragment.name\n );\n const [data, refetch] = useCompiledRefetchableFragment(\n documents,\n fragmentReference\n );\n const commonPaginationParams = {\n fragmentReference,\n refetch,\n metadata,\n executionQueryDocument,\n cache: useApolloClient().cache,\n connectionSelectionPath: connectionMetadata.selectionPath,\n };\n const pageInfo = getPageInfo(data, connectionMetadata.selectionPath);\n const [loadNext, isLoadingNext] = useLoadMore({\n ...commonPaginationParams,\n countVariable: connectionMetadata.forwardCountVariable,\n cursorVariable: connectionMetadata.forwardCursorVariable,\n cursorValue: pageInfo?.endCursor,\n updater: (existing, incoming) => [...existing, ...incoming],\n });\n const [loadPrevious, isLoadingPrevious] = useLoadMore({\n ...commonPaginationParams,\n countVariable: connectionMetadata.backwardCountVariable,\n cursorVariable: connectionMetadata.backwardCursorVariable,\n cursorValue: pageInfo?.startCursor,\n updater: (existing, incoming) => [...incoming, ...existing],\n });\n return {\n data,\n refetch,\n hasNext: !!pageInfo?.hasNextPage,\n hasPrevious: !!pageInfo?.hasPreviousPage,\n isLoadingNext,\n isLoadingPrevious,\n loadNext,\n loadPrevious,\n };\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,23 @@
1
+ import { CompiledArtefactModule } from "relay-compiler-language-graphitation";
2
+ import { FragmentReference } from "./types";
3
+ import { FetchPolicy } from "../../types";
4
+ export interface Disposable {
5
+ dispose(): void;
6
+ }
7
+ export declare type RefetchFn<Variables extends {} = {}> = (variables: Partial<Variables>, options?: RefetchOptions) => Disposable;
8
+ export interface RefetchOptions {
9
+ onCompleted?: (error: Error | null) => void;
10
+ fetchPolicy?: FetchPolicy;
11
+ }
12
+ /**
13
+ * These do not exist in the Relay API and should not be exported from the package.
14
+ */
15
+ export interface PrivateRefetchOptions extends Omit<RefetchOptions, "fetchPolicy"> {
16
+ /**
17
+ * Returns the fetched data.
18
+ */
19
+ UNSTABLE_onCompletedWithData?: (error: Error | null, data: Record<string, any> | null) => void;
20
+ fetchPolicy?: FetchPolicy | "no-cache";
21
+ }
22
+ export declare function useCompiledRefetchableFragment(documents: CompiledArtefactModule, fragmentReference: FragmentReference): [data: {}, refetch: RefetchFn];
23
+ //# sourceMappingURL=useCompiledRefetchableFragment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCompiledRefetchableFragment.d.ts","sourceRoot":"","sources":["../../../src/storeObservation/compiledHooks/useCompiledRefetchableFragment.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,MAAM,WAAW,UAAU;IACzB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,oBAAY,SAAS,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE,IAAI,CACjD,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,EAC7B,OAAO,CAAC,EAAE,cAAc,KACrB,UAAU,CAAC;AAEhB,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC;IAC5C,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,qBACf,SAAQ,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC;IAC3C;;OAEG;IACH,4BAA4B,CAAC,EAAE,CAC7B,KAAK,EAAE,KAAK,GAAG,IAAI,EACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KAC7B,IAAI,CAAC;IAEV,WAAW,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC;CACxC;AAED,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,sBAAsB,EACjC,iBAAiB,EAAE,iBAAiB,GACnC,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,CAmHhC"}