@apollo/client 3.6.0-beta.0 → 3.6.0-beta.11

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 (171) hide show
  1. package/apollo-client.cjs +583 -458
  2. package/apollo-client.cjs.map +1 -1
  3. package/apollo-client.min.cjs +1 -1
  4. package/cache/cache.cjs +36 -35
  5. package/cache/cache.cjs.map +1 -1
  6. package/cache/inmemory/helpers.d.ts +1 -0
  7. package/cache/inmemory/helpers.d.ts.map +1 -1
  8. package/cache/inmemory/helpers.js +4 -3
  9. package/cache/inmemory/helpers.js.map +1 -1
  10. package/cache/inmemory/key-extractor.js +7 -7
  11. package/cache/inmemory/key-extractor.js.map +1 -1
  12. package/cache/inmemory/object-canon.d.ts.map +1 -1
  13. package/cache/inmemory/object-canon.js +2 -1
  14. package/cache/inmemory/object-canon.js.map +1 -1
  15. package/cache/inmemory/policies.d.ts +1 -1
  16. package/cache/inmemory/policies.d.ts.map +1 -1
  17. package/cache/inmemory/policies.js +9 -9
  18. package/cache/inmemory/policies.js.map +1 -1
  19. package/cache/inmemory/readFromStore.js +6 -6
  20. package/cache/inmemory/readFromStore.js.map +1 -1
  21. package/cache/inmemory/writeToStore.js +13 -13
  22. package/cache/inmemory/writeToStore.js.map +1 -1
  23. package/core/ApolloClient.d.ts +1 -1
  24. package/core/ApolloClient.d.ts.map +1 -1
  25. package/core/ApolloClient.js +3 -3
  26. package/core/ApolloClient.js.map +1 -1
  27. package/core/LocalState.js +1 -1
  28. package/core/LocalState.js.map +1 -1
  29. package/core/ObservableQuery.d.ts +8 -3
  30. package/core/ObservableQuery.d.ts.map +1 -1
  31. package/core/ObservableQuery.js +92 -45
  32. package/core/ObservableQuery.js.map +1 -1
  33. package/core/QueryInfo.d.ts.map +1 -1
  34. package/core/QueryInfo.js +4 -2
  35. package/core/QueryInfo.js.map +1 -1
  36. package/core/QueryManager.d.ts +5 -2
  37. package/core/QueryManager.d.ts.map +1 -1
  38. package/core/QueryManager.js +21 -13
  39. package/core/QueryManager.js.map +1 -1
  40. package/core/core.cjs +122 -68
  41. package/core/core.cjs.map +1 -1
  42. package/core/index.d.ts +1 -1
  43. package/core/index.d.ts.map +1 -1
  44. package/core/index.js +1 -1
  45. package/core/index.js.map +1 -1
  46. package/core/watchQueryOptions.d.ts +9 -1
  47. package/core/watchQueryOptions.d.ts.map +1 -1
  48. package/core/watchQueryOptions.js.map +1 -1
  49. package/errors/errors.cjs +2 -2
  50. package/errors/errors.cjs.map +1 -1
  51. package/errors/index.js +2 -2
  52. package/errors/index.js.map +1 -1
  53. package/invariantErrorCodes.js +27 -27
  54. package/link/batch/batch.cjs +48 -38
  55. package/link/batch/batch.cjs.map +1 -1
  56. package/link/batch/batching.d.ts +2 -6
  57. package/link/batch/batching.d.ts.map +1 -1
  58. package/link/batch/batching.js +48 -38
  59. package/link/batch/batching.js.map +1 -1
  60. package/link/batch-http/batch-http.cjs +1 -1
  61. package/link/batch-http/batch-http.cjs.map +1 -1
  62. package/link/batch-http/batchHttpLink.js +2 -2
  63. package/link/batch-http/batchHttpLink.js.map +1 -1
  64. package/link/http/createHttpLink.js +2 -2
  65. package/link/http/createHttpLink.js.map +1 -1
  66. package/link/http/http.cjs +24 -13
  67. package/link/http/http.cjs.map +1 -1
  68. package/link/http/index.d.ts +1 -1
  69. package/link/http/index.d.ts.map +1 -1
  70. package/link/http/index.js +1 -1
  71. package/link/http/index.js.map +1 -1
  72. package/link/http/parseAndCheckHttpResponse.js +3 -3
  73. package/link/http/parseAndCheckHttpResponse.js.map +1 -1
  74. package/link/http/rewriteURIForGET.js +1 -1
  75. package/link/http/rewriteURIForGET.js.map +1 -1
  76. package/link/http/selectHttpOptionsAndBody.d.ts +5 -1
  77. package/link/http/selectHttpOptionsAndBody.d.ts.map +1 -1
  78. package/link/http/selectHttpOptionsAndBody.js +19 -8
  79. package/link/http/selectHttpOptionsAndBody.js.map +1 -1
  80. package/link/http/serializeFetchParameter.js +1 -1
  81. package/link/http/serializeFetchParameter.js.map +1 -1
  82. package/link/subscriptions/index.d.ts +9 -0
  83. package/link/subscriptions/index.d.ts.map +1 -0
  84. package/link/subscriptions/index.js +39 -0
  85. package/link/subscriptions/index.js.map +1 -0
  86. package/link/subscriptions/package.json +8 -0
  87. package/link/subscriptions/subscriptions.cjs +45 -0
  88. package/link/subscriptions/subscriptions.cjs.map +1 -0
  89. package/link/utils/utils.cjs +1 -1
  90. package/link/utils/utils.cjs.map +1 -1
  91. package/link/utils/validateOperation.js +1 -1
  92. package/link/utils/validateOperation.js.map +1 -1
  93. package/main.cjs +4 -4
  94. package/package.json +25 -19
  95. package/react/components/components.cjs +3 -3
  96. package/react/context/context.cjs +3 -3
  97. package/react/hoc/hoc.cjs +9 -9
  98. package/react/hoc/hoc.cjs.map +1 -1
  99. package/react/hoc/mutation-hoc.js +2 -2
  100. package/react/hoc/mutation-hoc.js.map +1 -1
  101. package/react/hoc/query-hoc.js +1 -1
  102. package/react/hoc/query-hoc.js.map +1 -1
  103. package/react/hoc/subscription-hoc.js +1 -1
  104. package/react/hoc/subscription-hoc.js.map +1 -1
  105. package/react/hoc/withApollo.js +1 -1
  106. package/react/hoc/withApollo.js.map +1 -1
  107. package/react/hooks/hooks.cjs +366 -306
  108. package/react/hooks/hooks.cjs.map +1 -1
  109. package/react/hooks/index.d.ts +1 -1
  110. package/react/hooks/index.d.ts.map +1 -1
  111. package/react/hooks/index.js +1 -1
  112. package/react/hooks/index.js.map +1 -1
  113. package/react/hooks/useApolloClient.js +2 -2
  114. package/react/hooks/useApolloClient.js.map +1 -1
  115. package/react/hooks/useLazyQuery.d.ts +2 -2
  116. package/react/hooks/useLazyQuery.d.ts.map +1 -1
  117. package/react/hooks/useLazyQuery.js +48 -39
  118. package/react/hooks/useLazyQuery.js.map +1 -1
  119. package/react/hooks/useMutation.d.ts.map +1 -1
  120. package/react/hooks/useMutation.js +59 -65
  121. package/react/hooks/useMutation.js.map +1 -1
  122. package/react/hooks/useQuery.d.ts +31 -1
  123. package/react/hooks/useQuery.d.ts.map +1 -1
  124. package/react/hooks/useQuery.js +256 -196
  125. package/react/hooks/useQuery.js.map +1 -1
  126. package/react/hooks/useSubscription.d.ts.map +1 -1
  127. package/react/hooks/useSubscription.js +10 -8
  128. package/react/hooks/useSubscription.js.map +1 -1
  129. package/react/parser/index.js +7 -7
  130. package/react/parser/index.js.map +1 -1
  131. package/react/parser/parser.cjs +7 -7
  132. package/react/parser/parser.cjs.map +1 -1
  133. package/react/react.cjs +2 -2
  134. package/react/ssr/RenderPromises.d.ts +1 -1
  135. package/react/ssr/RenderPromises.d.ts.map +1 -1
  136. package/react/ssr/RenderPromises.js +2 -2
  137. package/react/ssr/RenderPromises.js.map +1 -1
  138. package/react/ssr/ssr.cjs +5 -5
  139. package/react/ssr/ssr.cjs.map +1 -1
  140. package/react/types/types.d.ts +11 -12
  141. package/react/types/types.d.ts.map +1 -1
  142. package/react/types/types.js.map +1 -1
  143. package/testing/core/core.cjs +2 -2
  144. package/testing/core/core.cjs.map +1 -1
  145. package/testing/core/mocking/mockFetch.js +2 -2
  146. package/testing/core/mocking/mockFetch.js.map +1 -1
  147. package/testing/core/mocking/mockLink.js +2 -2
  148. package/testing/core/mocking/mockLink.js.map +1 -1
  149. package/testing/core/observableToPromise.js +1 -1
  150. package/testing/core/observableToPromise.js.map +1 -1
  151. package/testing/testing.cjs +5 -5
  152. package/utilities/common/makeUniqueId.js +1 -1
  153. package/utilities/common/makeUniqueId.js.map +1 -1
  154. package/utilities/globals/fix-graphql.js +1 -1
  155. package/utilities/globals/global.d.ts +2 -8
  156. package/utilities/globals/global.d.ts.map +1 -1
  157. package/utilities/globals/global.js +1 -1
  158. package/utilities/globals/global.js.map +1 -1
  159. package/utilities/globals/globals.cjs +1 -1
  160. package/utilities/globals/globals.cjs.map +1 -1
  161. package/utilities/graphql/directives.js +4 -4
  162. package/utilities/graphql/directives.js.map +1 -1
  163. package/utilities/graphql/fragments.js +3 -3
  164. package/utilities/graphql/fragments.js.map +1 -1
  165. package/utilities/graphql/getFromAST.js +2 -2
  166. package/utilities/graphql/getFromAST.js.map +1 -1
  167. package/utilities/graphql/storeUtils.js +5 -5
  168. package/utilities/graphql/storeUtils.js.map +1 -1
  169. package/utilities/utilities.cjs +15 -15
  170. package/utilities/utilities.cjs.map +1 -1
  171. package/version.js +1 -1
@@ -1,5 +1,5 @@
1
1
  import { __assign } from "tslib";
2
- import { useCallback, useMemo, useEffect, useRef, useState } from 'react';
2
+ import { useCallback, useEffect, useRef, useState } from 'react';
3
3
  import { mergeOptions, } from "../../core/index.js";
4
4
  import { equal } from '@wry/equality';
5
5
  import { DocumentType, verifyDocumentType } from "../parser/index.js";
@@ -17,79 +17,73 @@ export function useMutation(mutation, options) {
17
17
  result: result,
18
18
  mutationId: 0,
19
19
  isMounted: true,
20
- execute: null,
21
20
  client: client,
22
21
  mutation: mutation,
23
22
  options: options,
24
23
  });
25
- var execute = useMemo(function () {
26
- if (ref.current.execute != null &&
27
- ref.current.client === client &&
28
- equal(options, ref.current.options) &&
29
- equal(mutation, ref.current.mutation)) {
30
- return ref.current.execute;
24
+ {
25
+ Object.assign(ref.current, { client: client, options: options, mutation: mutation });
26
+ }
27
+ var execute = useCallback(function (executeOptions) {
28
+ if (executeOptions === void 0) { executeOptions = {}; }
29
+ var _a = ref.current, client = _a.client, options = _a.options, mutation = _a.mutation;
30
+ var baseOptions = __assign(__assign({}, options), { mutation: mutation });
31
+ if (!ref.current.result.loading && !baseOptions.ignoreResults) {
32
+ setResult(ref.current.result = {
33
+ loading: true,
34
+ error: void 0,
35
+ data: void 0,
36
+ called: true,
37
+ client: client,
38
+ });
31
39
  }
32
- ref.current.client = client;
33
- ref.current.options = options;
34
- ref.current.mutation = mutation;
35
- ref.current.execute = function (executeOptions) {
36
- if (executeOptions === void 0) { executeOptions = {}; }
37
- var baseOptions = __assign(__assign({}, options), { mutation: mutation });
38
- if (!ref.current.result.loading && !baseOptions.ignoreResults) {
39
- setResult(ref.current.result = {
40
- loading: true,
41
- error: void 0,
42
- data: void 0,
40
+ var mutationId = ++ref.current.mutationId;
41
+ var clientOptions = mergeOptions(baseOptions, executeOptions);
42
+ return client.mutate(clientOptions).then(function (response) {
43
+ var _a, _b;
44
+ var data = response.data, errors = response.errors;
45
+ var error = errors && errors.length > 0
46
+ ? new ApolloError({ graphQLErrors: errors })
47
+ : void 0;
48
+ if (mutationId === ref.current.mutationId &&
49
+ !clientOptions.ignoreResults) {
50
+ var result_1 = {
43
51
  called: true,
52
+ loading: false,
53
+ data: data,
54
+ error: error,
44
55
  client: client,
45
- });
46
- }
47
- var mutationId = ++ref.current.mutationId;
48
- var clientOptions = mergeOptions(baseOptions, executeOptions);
49
- return client.mutate(clientOptions).then(function (response) {
50
- var _a;
51
- var data = response.data, errors = response.errors;
52
- var error = errors && errors.length > 0
53
- ? new ApolloError({ graphQLErrors: errors })
54
- : void 0;
55
- if (mutationId === ref.current.mutationId &&
56
- !baseOptions.ignoreResults) {
57
- var result_1 = {
58
- called: true,
59
- loading: false,
60
- data: data,
61
- error: error,
62
- client: client,
63
- };
64
- if (ref.current.isMounted && !equal(ref.current.result, result_1)) {
65
- setResult(ref.current.result = result_1);
66
- }
56
+ };
57
+ if (ref.current.isMounted && !equal(ref.current.result, result_1)) {
58
+ setResult(ref.current.result = result_1);
67
59
  }
68
- (_a = baseOptions.onCompleted) === null || _a === void 0 ? void 0 : _a.call(baseOptions, response.data);
69
- return response;
70
- }).catch(function (error) {
71
- if (mutationId === ref.current.mutationId &&
72
- ref.current.isMounted) {
73
- var result_2 = {
74
- loading: false,
75
- error: error,
76
- data: void 0,
77
- called: true,
78
- client: client,
79
- };
80
- if (!equal(ref.current.result, result_2)) {
81
- setResult(ref.current.result = result_2);
82
- }
83
- }
84
- if (baseOptions.onError) {
85
- baseOptions.onError(error);
86
- return { data: void 0, errors: error };
60
+ }
61
+ (_a = baseOptions.onCompleted) === null || _a === void 0 ? void 0 : _a.call(baseOptions, response.data);
62
+ (_b = executeOptions.onCompleted) === null || _b === void 0 ? void 0 : _b.call(executeOptions, response.data);
63
+ return response;
64
+ }).catch(function (error) {
65
+ var _a, _b;
66
+ if (mutationId === ref.current.mutationId &&
67
+ ref.current.isMounted) {
68
+ var result_2 = {
69
+ loading: false,
70
+ error: error,
71
+ data: void 0,
72
+ called: true,
73
+ client: client,
74
+ };
75
+ if (!equal(ref.current.result, result_2)) {
76
+ setResult(ref.current.result = result_2);
87
77
  }
88
- throw error;
89
- });
90
- };
91
- return ref.current.execute;
92
- }, [client, mutation, options]);
78
+ }
79
+ if (baseOptions.onError || clientOptions.onError) {
80
+ (_a = baseOptions.onError) === null || _a === void 0 ? void 0 : _a.call(baseOptions, error);
81
+ (_b = executeOptions.onError) === null || _b === void 0 ? void 0 : _b.call(executeOptions, error);
82
+ return { data: void 0, errors: error };
83
+ }
84
+ throw error;
85
+ });
86
+ }, []);
93
87
  var reset = useCallback(function () {
94
88
  setResult({ called: false, loading: false, client: client });
95
89
  }, []);
@@ -1 +1 @@
1
- {"version":3,"file":"useMutation.js","sourceRoot":"","sources":["../../../src/react/hooks/useMutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useMemo, useEffect, useRef, useState } from 'react';\nimport { DocumentNode } from 'graphql';\nimport { TypedDocumentNode } from '@graphql-typed-document-node/core';\nimport {\n MutationFunctionOptions,\n MutationHookOptions,\n MutationResult,\n MutationTuple,\n} from '../types/types';\n\nimport {\n ApolloCache,\n DefaultContext,\n mergeOptions,\n OperationVariables,\n} from '../../core';\nimport { equal } from '@wry/equality';\nimport { DocumentType, verifyDocumentType } from '../parser';\nimport { ApolloError } from '../../errors';\nimport { useApolloClient } from './useApolloClient';\n\nexport function useMutation<\n TData = any,\n TVariables = OperationVariables,\n TContext = DefaultContext,\n TCache extends ApolloCache<any> = ApolloCache<any>,\n>(\n mutation: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options?: MutationHookOptions<TData, TVariables, TContext>,\n): MutationTuple<TData, TVariables, TContext, TCache> {\n const client = useApolloClient(options?.client);\n verifyDocumentType(mutation, DocumentType.Mutation);\n const [result, setResult] = useState<Omit<MutationResult, 'reset'>>({\n called: false,\n loading: false,\n client,\n });\n\n const ref = useRef({\n result,\n mutationId: 0,\n isMounted: true,\n execute: null as null | MutationTuple<TData, TVariables, TContext, TCache>[0],\n client,\n mutation,\n options,\n });\n\n const execute = useMemo(() => {\n if (\n ref.current.execute != null &&\n ref.current.client === client &&\n equal(options, ref.current.options) &&\n equal(mutation, ref.current.mutation)) {\n return ref.current.execute;\n }\n\n ref.current.client = client;\n ref.current.options = options;\n ref.current.mutation = mutation;\n ref.current.execute = (\n executeOptions: MutationFunctionOptions<\n TData,\n TVariables,\n TContext,\n TCache\n > = {},\n ) => {\n const baseOptions = { ...options, mutation };\n if (!ref.current.result.loading && !baseOptions.ignoreResults) {\n setResult(ref.current.result = {\n loading: true,\n error: void 0,\n data: void 0,\n called: true,\n client,\n });\n }\n\n const mutationId = ++ref.current.mutationId;\n const clientOptions = mergeOptions(\n baseOptions,\n executeOptions as any,\n );\n\n return client.mutate(clientOptions).then((response) =>{\n const { data, errors } = response;\n const error =\n errors && errors.length > 0\n ? new ApolloError({ graphQLErrors: errors })\n : void 0;\n\n if (\n mutationId === ref.current.mutationId &&\n !baseOptions.ignoreResults\n ) {\n const result = {\n called: true,\n loading: false,\n data,\n error,\n client,\n };\n\n if (ref.current.isMounted && !equal(ref.current.result, result)) {\n setResult(ref.current.result = result);\n }\n }\n\n baseOptions.onCompleted?.(response.data!);\n return response;\n }).catch((error) => {\n if (\n mutationId === ref.current.mutationId &&\n ref.current.isMounted\n ) {\n const result = {\n loading: false,\n error,\n data: void 0,\n called: true,\n client,\n };\n\n if (!equal(ref.current.result, result)) {\n setResult(ref.current.result = result);\n }\n }\n\n if (baseOptions.onError) {\n baseOptions.onError(error);\n // TODO(brian): why are we returning this here???\n return { data: void 0, errors: error };\n }\n\n throw error;\n });\n };\n\n return ref.current.execute;\n }, [client, mutation, options]);\n\n const reset = useCallback(() => {\n setResult({ called: false, loading: false, client });\n }, []);\n\n useEffect(() => () => {\n ref.current.isMounted = false;\n }, []);\n\n\n return [execute, { reset, ...result }];\n}\n"]}
1
+ {"version":3,"file":"useMutation.js","sourceRoot":"","sources":["../../../src/react/hooks/useMutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\nimport { DocumentNode } from 'graphql';\nimport { TypedDocumentNode } from '@graphql-typed-document-node/core';\nimport {\n MutationFunctionOptions,\n MutationHookOptions,\n MutationResult,\n MutationTuple,\n} from '../types/types';\n\nimport {\n ApolloCache,\n DefaultContext,\n mergeOptions,\n OperationVariables,\n} from '../../core';\nimport { equal } from '@wry/equality';\nimport { DocumentType, verifyDocumentType } from '../parser';\nimport { ApolloError } from '../../errors';\nimport { useApolloClient } from './useApolloClient';\n\nexport function useMutation<\n TData = any,\n TVariables = OperationVariables,\n TContext = DefaultContext,\n TCache extends ApolloCache<any> = ApolloCache<any>,\n>(\n mutation: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options?: MutationHookOptions<TData, TVariables, TContext>,\n): MutationTuple<TData, TVariables, TContext, TCache> {\n const client = useApolloClient(options?.client);\n verifyDocumentType(mutation, DocumentType.Mutation);\n const [result, setResult] = useState<Omit<MutationResult, 'reset'>>({\n called: false,\n loading: false,\n client,\n });\n\n const ref = useRef({\n result,\n mutationId: 0,\n isMounted: true,\n client,\n mutation,\n options,\n });\n\n // TODO: Trying to assign these in a useEffect or useLayoutEffect breaks\n // higher-order components.\n {\n Object.assign(ref.current, { client, options, mutation });\n }\n\n const execute = useCallback((\n executeOptions: MutationFunctionOptions<\n TData,\n TVariables,\n TContext,\n TCache\n > = {}\n ) => {\n const {client, options, mutation} = ref.current;\n const baseOptions = { ...options, mutation };\n if (!ref.current.result.loading && !baseOptions.ignoreResults) {\n setResult(ref.current.result = {\n loading: true,\n error: void 0,\n data: void 0,\n called: true,\n client,\n });\n }\n\n const mutationId = ++ref.current.mutationId;\n const clientOptions = mergeOptions(\n baseOptions,\n executeOptions as any,\n );\n\n return client.mutate(clientOptions).then((response) => {\n const { data, errors } = response;\n const error =\n errors && errors.length > 0\n ? new ApolloError({ graphQLErrors: errors })\n : void 0;\n\n if (\n mutationId === ref.current.mutationId &&\n !clientOptions.ignoreResults\n ) {\n const result = {\n called: true,\n loading: false,\n data,\n error,\n client,\n };\n\n if (ref.current.isMounted && !equal(ref.current.result, result)) {\n setResult(ref.current.result = result);\n }\n }\n\n baseOptions.onCompleted?.(response.data!);\n executeOptions.onCompleted?.(response.data!);\n return response;\n }).catch((error) => {\n if (\n mutationId === ref.current.mutationId &&\n ref.current.isMounted\n ) {\n const result = {\n loading: false,\n error,\n data: void 0,\n called: true,\n client,\n };\n\n if (!equal(ref.current.result, result)) {\n setResult(ref.current.result = result);\n }\n }\n\n if (baseOptions.onError || clientOptions.onError) {\n baseOptions.onError?.(error);\n executeOptions.onError?.(error);\n // TODO(brian): why are we returning this here???\n return { data: void 0, errors: error };\n }\n\n throw error;\n });\n }, []);\n\n const reset = useCallback(() => {\n setResult({ called: false, loading: false, client });\n }, []);\n\n useEffect(() => () => {\n ref.current.isMounted = false;\n }, []);\n\n return [execute, { reset, ...result }];\n}\n"]}
@@ -1,5 +1,35 @@
1
1
  import { OperationVariables } from '../../core';
2
- import { DocumentNode, TypedDocumentNode } from '../../core';
2
+ import { ApolloClient, ApolloQueryResult, DocumentNode, TypedDocumentNode } from '../../core';
3
3
  import { QueryHookOptions, QueryResult } from '../types/types';
4
+ import { useApolloClient } from './useApolloClient';
4
5
  export declare function useQuery<TData = any, TVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options?: QueryHookOptions<TData, TVariables>): QueryResult<TData, TVariables>;
6
+ export declare function useInternalState<TData, TVariables>(client: ApolloClient<any>, query: DocumentNode | TypedDocumentNode<TData, TVariables>): InternalState<TData, TVariables>;
7
+ declare class InternalState<TData, TVariables> {
8
+ readonly client: ReturnType<typeof useApolloClient>;
9
+ readonly query: DocumentNode | TypedDocumentNode<TData, TVariables>;
10
+ constructor(client: ReturnType<typeof useApolloClient>, query: DocumentNode | TypedDocumentNode<TData, TVariables>);
11
+ forceUpdate(): void;
12
+ useQuery(options: QueryHookOptions<TData, TVariables>): QueryResult<TData, TVariables>;
13
+ private renderPromises;
14
+ private queryHookOptions;
15
+ private watchQueryOptions;
16
+ private ssrDisabled;
17
+ private useOptions;
18
+ private createWatchQueryOptions;
19
+ private onCompleted;
20
+ private onError;
21
+ private observable;
22
+ private obsQueryFields;
23
+ private useObservableQuery;
24
+ private useSubscriptionEffect;
25
+ private result;
26
+ private previousData;
27
+ private setResult;
28
+ private handleErrorOrCompleted;
29
+ private getCurrentResult;
30
+ private toQueryResultCache;
31
+ toQueryResult(result: ApolloQueryResult<TData>): QueryResult<TData, TVariables>;
32
+ private unsafeHandlePartialRefetch;
33
+ }
34
+ export {};
5
35
  //# sourceMappingURL=useQuery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useQuery.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EAIL,YAAY,EACZ,iBAAiB,EAElB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,gBAAgB,EAChB,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAKxB,wBAAgB,QAAQ,CACtB,KAAK,GAAG,GAAG,EACX,UAAU,GAAG,kBAAkB,EAE/B,KAAK,EAAE,YAAY,GAAG,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,EAC1D,OAAO,CAAC,EAAE,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,GAC5C,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,CAmShC"}
1
+ {"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useQuery.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgB,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAG9D,OAAO,EACL,YAAY,EACZ,iBAAiB,EAGjB,YAAY,EACZ,iBAAiB,EAElB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,gBAAgB,EAChB,WAAW,EAEZ,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AASpD,wBAAgB,QAAQ,CACtB,KAAK,GAAG,GAAG,EACX,UAAU,GAAG,kBAAkB,EAE/B,KAAK,EAAE,YAAY,GAAG,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,EAC1D,OAAO,GAAE,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAuB,GACjE,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,CAKhC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAChD,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,EACzB,KAAK,EAAE,YAAY,GAAG,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,oCAwB3D;AAED,cAAM,aAAa,CAAC,KAAK,EAAE,UAAU;aAEjB,MAAM,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC;aAC1C,KAAK,EAAE,YAAY,GAAG,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC;gBAD1D,MAAM,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,EAC1C,KAAK,EAAE,YAAY,GAAG,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC;IAK5E,WAAW;IAOX,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC;IA2BrD,OAAO,CAAC,cAAc,CAAuC;IAC7D,OAAO,CAAC,gBAAgB,CAAsC;IAC9D,OAAO,CAAC,iBAAiB,CAAuC;IAChE,OAAO,CAAC,WAAW,CAAU;IAE7B,OAAO,CAAC,UAAU;IA8BlB,OAAO,CAAC,uBAAuB;IAqH/B,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,OAAO;IAEf,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,cAAc,CAGpB;IAEF,OAAO,CAAC,kBAAkB;IAgF1B,OAAO,CAAC,qBAAqB;IAgF7B,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,YAAY,CAAoB;IAExC,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,gBAAgB;IAkDxB,OAAO,CAAC,kBAAkB,CAGtB;IAEJ,aAAa,CACX,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAC/B,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC;IA2BjC,OAAO,CAAC,0BAA0B;CAoBnC"}