@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
package/core/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { ApolloClient, ApolloClientOptions, DefaultOptions, mergeOptions, } from './ApolloClient';
2
- export { ObservableQuery, FetchMoreOptions, UpdateQueryOptions, applyNextFetchPolicy, } from './ObservableQuery';
2
+ export { ObservableQuery, FetchMoreOptions, UpdateQueryOptions, } from './ObservableQuery';
3
3
  export { QueryOptions, WatchQueryOptions, MutationOptions, SubscriptionOptions, FetchPolicy, WatchQueryFetchPolicy, ErrorPolicy, FetchMoreQueryOptions, SubscribeToMoreOptions, } from './watchQueryOptions';
4
4
  export { NetworkStatus } from './networkStatus';
5
5
  export * from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,qBAAqB,EACrB,WAAW,EACX,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,QAAQ,EACR,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAIvD,OAAO,EAGL,KAAK,EACL,WAAW,EACX,WAAW,EACX,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,WAAW,EACX,OAAO,EACP,YAAY,EACZ,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAElB,cAAc,yBAAyB,CAAC;AAIxC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,OAAO,EACL,SAAS,EACT,SAAS,EACT,WAAW,EACX,WAAW,EACX,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAIvB,OAAO,EACL,UAAU,EACV,QAAQ,EACR,sBAAsB,EACtB,SAAS,EACT,WAAW,EACX,aAAa,EACb,WAAW,GACZ,MAAM,cAAc,CAAC;AAQtB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,CAAA;AAe1C,OAAO,EACL,GAAG,EACH,WAAW,EACX,uBAAuB,EACvB,mCAAmC,EACnC,oCAAoC,GACrC,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,qBAAqB,EACrB,WAAW,EACX,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,QAAQ,EACR,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAIvD,OAAO,EAGL,KAAK,EACL,WAAW,EACX,WAAW,EACX,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,WAAW,EACX,OAAO,EACP,YAAY,EACZ,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAElB,cAAc,yBAAyB,CAAC;AAIxC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,OAAO,EACL,SAAS,EACT,SAAS,EACT,WAAW,EACX,WAAW,EACX,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAIvB,OAAO,EACL,UAAU,EACV,QAAQ,EACR,sBAAsB,EACtB,SAAS,EACT,WAAW,EACX,aAAa,EACb,WAAW,GACZ,MAAM,cAAc,CAAC;AAQtB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,CAAA;AAe1C,OAAO,EACL,GAAG,EACH,WAAW,EACX,uBAAuB,EACvB,mCAAmC,EACnC,oCAAoC,GACrC,MAAM,aAAa,CAAC"}
package/core/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { DEV } from "../utilities/globals/index.js";
2
2
  export { ApolloClient, mergeOptions, } from "./ApolloClient.js";
3
- export { ObservableQuery, applyNextFetchPolicy, } from "./ObservableQuery.js";
3
+ export { ObservableQuery, } from "./ObservableQuery.js";
4
4
  export { NetworkStatus } from "./networkStatus.js";
5
5
  export * from "./types.js";
6
6
  export { isApolloError, ApolloError } from "../errors/index.js";
package/core/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE3C,OAAO,EACL,YAAY,EAGZ,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EAGf,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAY3B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,cAAc,SAAS,CAAC;AAKxB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAIvD,OAAO,EAGL,KAAK,EACL,WAAW,EAGX,aAAa,EAEb,iBAAiB,EACjB,uBAAuB,EAEvB,OAAO,GAQR,MAAM,UAAU,CAAC;AAElB,cAAc,yBAAyB,CAAC;AAIxC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,OAAO,EACL,SAAS,EACT,SAAS,EACT,WAAW,EAEX,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAIvB,OAAO,EACL,UAAU,EAIV,WAAW,EACX,aAAa,GAEd,MAAM,cAAc,CAAC;AAQtB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,CAAA;AAC1C,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAcrC,OAAO,EACL,GAAG,EACH,WAAW,EACX,uBAAuB,EACvB,mCAAmC,EACnC,oCAAoC,GACrC,MAAM,aAAa,CAAC","sourcesContent":["/* Core */\n\nimport { DEV } from '../utilities/globals';\n\nexport {\n ApolloClient,\n ApolloClientOptions,\n DefaultOptions,\n mergeOptions,\n} from './ApolloClient';\nexport {\n ObservableQuery,\n FetchMoreOptions,\n UpdateQueryOptions,\n applyNextFetchPolicy,\n} from './ObservableQuery';\nexport {\n QueryOptions,\n WatchQueryOptions,\n MutationOptions,\n SubscriptionOptions,\n FetchPolicy,\n WatchQueryFetchPolicy,\n ErrorPolicy,\n FetchMoreQueryOptions,\n SubscribeToMoreOptions,\n} from './watchQueryOptions';\nexport { NetworkStatus } from './networkStatus';\nexport * from './types';\nexport {\n Resolver,\n FragmentMatcher,\n} from './LocalState';\nexport { isApolloError, ApolloError } from '../errors';\n\n/* Cache */\n\nexport {\n // All the exports (types and values) from ../cache, minus cacheSlot,\n // which we want to keep semi-private.\n Cache,\n ApolloCache,\n Transaction,\n DataProxy,\n InMemoryCache,\n InMemoryCacheConfig,\n MissingFieldError,\n defaultDataIdFromObject,\n ReactiveVar,\n makeVar,\n TypePolicies,\n TypePolicy,\n FieldPolicy,\n FieldReadFunction,\n FieldMergeFunction,\n FieldFunctionOptions,\n PossibleTypesMap,\n} from '../cache';\n\nexport * from '../cache/inmemory/types';\n\n/* Link */\n\nexport * from '../link/core';\nexport * from '../link/http';\nexport {\n fromError,\n toPromise,\n fromPromise,\n ServerError,\n throwServerError,\n} from '../link/utils';\n\n/* Utilities */\n\nexport {\n Observable,\n Observer,\n ObservableSubscription,\n Reference,\n isReference,\n makeReference,\n StoreObject,\n} from '../utilities';\n\n/* Supporting */\n\n// The verbosity of invariant.{log,warn,error} can be controlled globally\n// (for anyone using the same ts-invariant package) by passing \"log\",\n// \"warn\", \"error\", or \"silent\" to setVerbosity (\"log\" is the default).\n// Note that all invariant.* logging is hidden in production.\nimport { setVerbosity } from \"ts-invariant\";\nexport { setVerbosity as setLogVerbosity }\nsetVerbosity(DEV ? \"log\" : \"silent\");\n\n// Note that importing `gql` by itself, then destructuring\n// additional properties separately before exporting, is intentional.\n// Due to the way the `graphql-tag` library is setup, certain bundlers\n// can't find the properties added to the exported `gql` function without\n// additional guidance (e.g. Rollup - see\n// https://rollupjs.org/guide/en/#error-name-is-not-exported-by-module).\n// Instead of having people that are using bundlers with `@apollo/client` add\n// extra bundler config to help `graphql-tag` exports be found (which would be\n// awkward since they aren't importing `graphql-tag` themselves), this\n// workaround of pulling the extra properties off the `gql` function,\n// then re-exporting them separately, helps keeps bundlers happy without any\n// additional config changes.\nexport {\n gql,\n resetCaches,\n disableFragmentWarnings,\n enableExperimentalFragmentVariables,\n disableExperimentalFragmentVariables,\n} from 'graphql-tag';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE3C,OAAO,EACL,YAAY,EAGZ,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,GAGhB,MAAM,mBAAmB,CAAC;AAY3B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,cAAc,SAAS,CAAC;AAKxB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAIvD,OAAO,EAGL,KAAK,EACL,WAAW,EAGX,aAAa,EAEb,iBAAiB,EACjB,uBAAuB,EAEvB,OAAO,GAQR,MAAM,UAAU,CAAC;AAElB,cAAc,yBAAyB,CAAC;AAIxC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,OAAO,EACL,SAAS,EACT,SAAS,EACT,WAAW,EAEX,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAIvB,OAAO,EACL,UAAU,EAIV,WAAW,EACX,aAAa,GAEd,MAAM,cAAc,CAAC;AAQtB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,CAAA;AAC1C,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAcrC,OAAO,EACL,GAAG,EACH,WAAW,EACX,uBAAuB,EACvB,mCAAmC,EACnC,oCAAoC,GACrC,MAAM,aAAa,CAAC","sourcesContent":["/* Core */\n\nimport { DEV } from '../utilities/globals';\n\nexport {\n ApolloClient,\n ApolloClientOptions,\n DefaultOptions,\n mergeOptions,\n} from './ApolloClient';\nexport {\n ObservableQuery,\n FetchMoreOptions,\n UpdateQueryOptions,\n} from './ObservableQuery';\nexport {\n QueryOptions,\n WatchQueryOptions,\n MutationOptions,\n SubscriptionOptions,\n FetchPolicy,\n WatchQueryFetchPolicy,\n ErrorPolicy,\n FetchMoreQueryOptions,\n SubscribeToMoreOptions,\n} from './watchQueryOptions';\nexport { NetworkStatus } from './networkStatus';\nexport * from './types';\nexport {\n Resolver,\n FragmentMatcher,\n} from './LocalState';\nexport { isApolloError, ApolloError } from '../errors';\n\n/* Cache */\n\nexport {\n // All the exports (types and values) from ../cache, minus cacheSlot,\n // which we want to keep semi-private.\n Cache,\n ApolloCache,\n Transaction,\n DataProxy,\n InMemoryCache,\n InMemoryCacheConfig,\n MissingFieldError,\n defaultDataIdFromObject,\n ReactiveVar,\n makeVar,\n TypePolicies,\n TypePolicy,\n FieldPolicy,\n FieldReadFunction,\n FieldMergeFunction,\n FieldFunctionOptions,\n PossibleTypesMap,\n} from '../cache';\n\nexport * from '../cache/inmemory/types';\n\n/* Link */\n\nexport * from '../link/core';\nexport * from '../link/http';\nexport {\n fromError,\n toPromise,\n fromPromise,\n ServerError,\n throwServerError,\n} from '../link/utils';\n\n/* Utilities */\n\nexport {\n Observable,\n Observer,\n ObservableSubscription,\n Reference,\n isReference,\n makeReference,\n StoreObject,\n} from '../utilities';\n\n/* Supporting */\n\n// The verbosity of invariant.{log,warn,error} can be controlled globally\n// (for anyone using the same ts-invariant package) by passing \"log\",\n// \"warn\", \"error\", or \"silent\" to setVerbosity (\"log\" is the default).\n// Note that all invariant.* logging is hidden in production.\nimport { setVerbosity } from \"ts-invariant\";\nexport { setVerbosity as setLogVerbosity }\nsetVerbosity(DEV ? \"log\" : \"silent\");\n\n// Note that importing `gql` by itself, then destructuring\n// additional properties separately before exporting, is intentional.\n// Due to the way the `graphql-tag` library is setup, certain bundlers\n// can't find the properties added to the exported `gql` function without\n// additional guidance (e.g. Rollup - see\n// https://rollupjs.org/guide/en/#error-name-is-not-exported-by-module).\n// Instead of having people that are using bundlers with `@apollo/client` add\n// extra bundler config to help `graphql-tag` exports be found (which would be\n// awkward since they aren't importing `graphql-tag` themselves), this\n// workaround of pulling the extra properties off the `gql` function,\n// then re-exporting them separately, helps keeps bundlers happy without any\n// additional config changes.\nexport {\n gql,\n resetCaches,\n disableFragmentWarnings,\n enableExperimentalFragmentVariables,\n disableExperimentalFragmentVariables,\n} from 'graphql-tag';\n"]}
@@ -3,6 +3,7 @@ import { TypedDocumentNode } from '@graphql-typed-document-node/core';
3
3
  import { FetchResult } from '../link/core';
4
4
  import { DefaultContext, MutationQueryReducersMap, OperationVariables, MutationUpdaterFunction, OnQueryUpdated, InternalRefetchQueriesInclude } from './types';
5
5
  import { ApolloCache } from '../cache';
6
+ import { ObservableQuery } from './ObservableQuery';
6
7
  export declare type FetchPolicy = 'cache-first' | 'network-only' | 'cache-only' | 'no-cache' | 'standby';
7
8
  export declare type WatchQueryFetchPolicy = FetchPolicy | 'cache-and-network';
8
9
  export declare type MutationFetchPolicy = Extract<FetchPolicy, 'network-only' | 'no-cache'>;
@@ -22,9 +23,16 @@ export interface QueryOptions<TVariables = OperationVariables, TData = any> {
22
23
  }
23
24
  export interface WatchQueryOptions<TVariables = OperationVariables, TData = any> extends Omit<QueryOptions<TVariables, TData>, 'fetchPolicy'> {
24
25
  fetchPolicy?: WatchQueryFetchPolicy;
25
- nextFetchPolicy?: WatchQueryFetchPolicy | ((this: WatchQueryOptions<TVariables, TData>, lastFetchPolicy: WatchQueryFetchPolicy) => WatchQueryFetchPolicy);
26
+ nextFetchPolicy?: WatchQueryFetchPolicy | ((this: WatchQueryOptions<TVariables, TData>, currentFetchPolicy: WatchQueryFetchPolicy, context: NextFetchPolicyContext<TData, TVariables>) => WatchQueryFetchPolicy);
27
+ initialFetchPolicy?: WatchQueryFetchPolicy;
26
28
  refetchWritePolicy?: RefetchWritePolicy;
27
29
  }
30
+ export interface NextFetchPolicyContext<TData, TVariables> {
31
+ reason: "after-fetch" | "variables-changed";
32
+ observable: ObservableQuery<TData, TVariables>;
33
+ options: WatchQueryOptions<TVariables, TData>;
34
+ initialFetchPolicy: WatchQueryFetchPolicy;
35
+ }
28
36
  export interface FetchMoreQueryOptions<TVariables, TData = any> {
29
37
  query?: DocumentNode | TypedDocumentNode<TData, TVariables>;
30
38
  variables?: Partial<TVariables>;
@@ -1 +1 @@
1
- {"version":3,"file":"watchQueryOptions.d.ts","sourceRoot":"","sources":["../../src/core/watchQueryOptions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watchQueryOptions.d.ts","sourceRoot":"","sources":["../../src/core/watchQueryOptions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"watchQueryOptions.js","sourceRoot":"","sources":["../../src/core/watchQueryOptions.ts"],"names":[],"mappings":"","sourcesContent":["import { DocumentNode } from 'graphql';\nimport { TypedDocumentNode } from '@graphql-typed-document-node/core';\n\nimport { FetchResult } from '../link/core';\nimport {\n DefaultContext,\n MutationQueryReducersMap,\n OperationVariables,\n MutationUpdaterFunction,\n OnQueryUpdated,\n InternalRefetchQueriesInclude,\n} from './types';\nimport { ApolloCache } from '../cache';\n\n/**\n * fetchPolicy determines where the client may return a result from. The options are:\n * - cache-first (default): return result from cache. Only fetch from network if cached result is not available.\n * - cache-and-network: return result from cache first (if it exists), then return network result once it's available.\n * - cache-only: return result from cache if available, fail otherwise.\n * - no-cache: return result from network, fail if network call doesn't succeed, don't save to cache\n * - network-only: return result from network, fail if network call doesn't succeed, save to cache\n * - standby: only for queries that aren't actively watched, but should be available for refetch and updateQueries.\n */\nexport type FetchPolicy =\n | 'cache-first'\n | 'network-only'\n | 'cache-only'\n | 'no-cache'\n | 'standby';\n\nexport type WatchQueryFetchPolicy = FetchPolicy | 'cache-and-network';\n\nexport type MutationFetchPolicy = Extract<\n FetchPolicy,\n | 'network-only' // default behavior (mutation results written to cache)\n | 'no-cache' // alternate behavior (results not written to cache)\n>;\n\nexport type RefetchWritePolicy = \"merge\" | \"overwrite\";\n\n/**\n * errorPolicy determines the level of events for errors in the execution result. The options are:\n * - none (default): any errors from the request are treated like runtime errors and the observable is stopped (XXX this is default to lower breaking changes going from AC 1.0 => 2.0)\n * - ignore: errors from the request do not stop the observable, but also don't call `next`\n * - all: errors are treated like data and will notify observables\n */\nexport type ErrorPolicy = 'none' | 'ignore' | 'all';\n\n/**\n * Query options.\n */\nexport interface QueryOptions<TVariables = OperationVariables, TData = any> {\n /**\n * A GraphQL document that consists of a single query to be sent down to the\n * server.\n */\n // TODO REFACTOR: rename this to document. Didn't do it yet because it's in a\n // lot of tests.\n query: DocumentNode | TypedDocumentNode<TData, TVariables>;\n\n /**\n * A map going from variable name to variable value, where the variables are used\n * within the GraphQL query.\n */\n variables?: TVariables;\n\n /**\n * Specifies the {@link ErrorPolicy} to be used for this query\n */\n errorPolicy?: ErrorPolicy;\n\n /**\n * Context to be passed to link execution chain\n */\n context?: any;\n\n /**\n * Specifies the {@link FetchPolicy} to be used for this query\n */\n fetchPolicy?: FetchPolicy;\n\n /**\n * The time interval (in milliseconds) on which this query should be\n * refetched from the server.\n */\n pollInterval?: number;\n\n /**\n * Whether or not updates to the network status should trigger next on the observer of this query\n */\n notifyOnNetworkStatusChange?: boolean;\n\n /**\n * Allow returning incomplete data from the cache when a larger query cannot\n * be fully satisfied by the cache, instead of returning nothing.\n */\n returnPartialData?: boolean;\n\n /**\n * If `true`, perform a query `refetch` if the query result is marked as\n * being partial, and the returned data is reset to an empty Object by the\n * Apollo Client `QueryManager` (due to a cache miss).\n */\n partialRefetch?: boolean;\n\n /**\n * Whether to canonize cache results before returning them. Canonization\n * takes some extra time, but it speeds up future deep equality comparisons.\n * Defaults to false.\n */\n canonizeResults?: boolean;\n}\n\n/**\n * Watched query options.\n */\nexport interface WatchQueryOptions<TVariables = OperationVariables, TData = any>\n extends Omit<QueryOptions<TVariables, TData>, 'fetchPolicy'> {\n /**\n * Specifies the {@link FetchPolicy} to be used for this query.\n */\n fetchPolicy?: WatchQueryFetchPolicy;\n /**\n * Specifies the {@link FetchPolicy} to be used after this query has completed.\n */\n nextFetchPolicy?: WatchQueryFetchPolicy | ((\n this: WatchQueryOptions<TVariables, TData>,\n lastFetchPolicy: WatchQueryFetchPolicy,\n ) => WatchQueryFetchPolicy);\n /**\n * Specifies whether a {@link NetworkStatus.refetch} operation should merge\n * incoming field data with existing data, or overwrite the existing data.\n * Overwriting is probably preferable, but merging is currently the default\n * behavior, for backwards compatibility with Apollo Client 3.x.\n */\n refetchWritePolicy?: RefetchWritePolicy;\n}\n\nexport interface FetchMoreQueryOptions<TVariables, TData = any> {\n query?: DocumentNode | TypedDocumentNode<TData, TVariables>;\n variables?: Partial<TVariables>;\n context?: any;\n}\n\nexport type UpdateQueryFn<\n TData = any,\n TSubscriptionVariables = OperationVariables,\n TSubscriptionData = TData\n> = (\n previousQueryResult: TData,\n options: {\n subscriptionData: { data: TSubscriptionData };\n variables?: TSubscriptionVariables;\n },\n) => TData;\n\nexport type SubscribeToMoreOptions<\n TData = any,\n TSubscriptionVariables = OperationVariables,\n TSubscriptionData = TData\n> = {\n document: DocumentNode | TypedDocumentNode<TSubscriptionData, TSubscriptionVariables>;\n variables?: TSubscriptionVariables;\n updateQuery?: UpdateQueryFn<TData, TSubscriptionVariables, TSubscriptionData>;\n onError?: (error: Error) => void;\n context?: DefaultContext;\n};\n\nexport interface SubscriptionOptions<TVariables = OperationVariables, TData = any> {\n /**\n * A GraphQL document, often created with `gql` from the `graphql-tag`\n * package, that contains a single subscription inside of it.\n */\n query: DocumentNode | TypedDocumentNode<TData, TVariables>;\n\n /**\n * An object that maps from the name of a variable as used in the subscription\n * GraphQL document to that variable's value.\n */\n variables?: TVariables;\n\n /**\n * Specifies the {@link FetchPolicy} to be used for this subscription.\n */\n fetchPolicy?: FetchPolicy;\n\n /**\n * Specifies the {@link ErrorPolicy} to be used for this operation\n */\n errorPolicy?: ErrorPolicy;\n\n /**\n * Context object to be passed through the link execution chain.\n */\n context?: DefaultContext;\n}\n\nexport interface MutationBaseOptions<\n TData = any,\n TVariables = OperationVariables,\n TContext = DefaultContext,\n TCache extends ApolloCache<any> = ApolloCache<any>,\n> {\n /**\n * An object that represents the result of this mutation that will be\n * optimistically stored before the server has actually returned a result.\n * This is most often used for optimistic UI, where we want to be able to see\n * the result of a mutation immediately, and update the UI later if any errors\n * appear.\n */\n optimisticResponse?: TData | ((vars: TVariables) => TData);\n\n /**\n * A {@link MutationQueryReducersMap}, which is map from query names to\n * mutation query reducers. Briefly, this map defines how to incorporate the\n * results of the mutation into the results of queries that are currently\n * being watched by your application.\n */\n updateQueries?: MutationQueryReducersMap<TData>;\n\n /**\n * A list of query names which will be refetched once this mutation has\n * returned. This is often used if you have a set of queries which may be\n * affected by a mutation and will have to update. Rather than writing a\n * mutation query reducer (i.e. `updateQueries`) for this, you can simply\n * refetch the queries that will be affected and achieve a consistent store\n * once these queries return.\n */\n refetchQueries?:\n | ((result: FetchResult<TData>) => InternalRefetchQueriesInclude)\n | InternalRefetchQueriesInclude;\n\n /**\n * By default, `refetchQueries` does not wait for the refetched queries to\n * be completed, before resolving the mutation `Promise`. This ensures that\n * query refetching does not hold up mutation response handling (query\n * refetching is handled asynchronously). Set `awaitRefetchQueries` to\n * `true` if you would like to wait for the refetched queries to complete,\n * before the mutation can be marked as resolved.\n */\n awaitRefetchQueries?: boolean;\n\n /**\n * A function which provides an {@link ApolloCache} instance, and the result\n * of the mutation, to allow the user to update the store based on the\n * results of the mutation.\n *\n * This function will be called twice over the lifecycle of a mutation. Once\n * at the very beginning if an `optimisticResponse` was provided. The writes\n * created from the optimistic data will be rolled back before the second time\n * this function is called which is when the mutation has successfully\n * resolved. At that point `update` will be called with the *actual* mutation\n * result and those writes will not be rolled back.\n *\n * Note that since this function is intended to be used to update the\n * store, it cannot be used with a `no-cache` fetch policy. If you're\n * interested in performing some action after a mutation has completed,\n * and you don't need to update the store, use the Promise returned from\n * `client.mutate` instead.\n */\n update?: MutationUpdaterFunction<TData, TVariables, TContext, TCache>;\n\n /**\n * A function that will be called for each ObservableQuery affected by\n * this mutation, after the mutation has completed.\n */\n onQueryUpdated?: OnQueryUpdated<any>;\n\n /**\n * Specifies the {@link ErrorPolicy} to be used for this operation\n */\n errorPolicy?: ErrorPolicy;\n\n /**\n * An object that maps from the name of a variable as used in the mutation\n * GraphQL document to that variable's value.\n */\n variables?: TVariables;\n\n /**\n * The context to be passed to the link execution chain. This context will\n * only be used with this mutation. It will not be used with\n * `refetchQueries`. Refetched queries use the context they were\n * initialized with (since the initial context is stored as part of the\n * `ObservableQuery` instance). If a specific context is needed when\n * refetching queries, make sure it is configured (via the\n * [query `context` option](https://www.apollographql.com/docs/react/api/apollo-client#ApolloClient.query))\n * when the query is first initialized/run.\n */\n context?: TContext;\n}\n\nexport interface MutationOptions<\n TData = any,\n TVariables = OperationVariables,\n TContext = DefaultContext,\n TCache extends ApolloCache<any> = ApolloCache<any>,\n> extends MutationBaseOptions<TData, TVariables, TContext, TCache> {\n /**\n * A GraphQL document, often created with `gql` from the `graphql-tag`\n * package, that contains a single mutation inside of it.\n */\n mutation: DocumentNode | TypedDocumentNode<TData, TVariables>;\n\n /**\n * Specifies the {@link MutationFetchPolicy} to be used for this query.\n * Mutations support only 'network-only' and 'no-cache' fetchPolicy strings.\n * If fetchPolicy is not provided, it defaults to 'network-only'.\n */\n fetchPolicy?: MutationFetchPolicy;\n\n /**\n * To avoid retaining sensitive information from mutation root field\n * arguments, Apollo Client v3.4+ automatically clears any `ROOT_MUTATION`\n * fields from the cache after each mutation finishes. If you need this\n * information to remain in the cache, you can prevent the removal by passing\n * `keepRootFields: true` to the mutation. `ROOT_MUTATION` result data are\n * also passed to the mutation `update` function, so we recommend obtaining\n * the results that way, rather than using this option, if possible.\n */\n keepRootFields?: boolean;\n}\n"]}
1
+ {"version":3,"file":"watchQueryOptions.js","sourceRoot":"","sources":["../../src/core/watchQueryOptions.ts"],"names":[],"mappings":"","sourcesContent":["import { DocumentNode } from 'graphql';\nimport { TypedDocumentNode } from '@graphql-typed-document-node/core';\n\nimport { FetchResult } from '../link/core';\nimport {\n DefaultContext,\n MutationQueryReducersMap,\n OperationVariables,\n MutationUpdaterFunction,\n OnQueryUpdated,\n InternalRefetchQueriesInclude,\n} from './types';\nimport { ApolloCache } from '../cache';\nimport { ObservableQuery } from './ObservableQuery';\n\n/**\n * fetchPolicy determines where the client may return a result from. The options are:\n * - cache-first (default): return result from cache. Only fetch from network if cached result is not available.\n * - cache-and-network: return result from cache first (if it exists), then return network result once it's available.\n * - cache-only: return result from cache if available, fail otherwise.\n * - no-cache: return result from network, fail if network call doesn't succeed, don't save to cache\n * - network-only: return result from network, fail if network call doesn't succeed, save to cache\n * - standby: only for queries that aren't actively watched, but should be available for refetch and updateQueries.\n */\nexport type FetchPolicy =\n | 'cache-first'\n | 'network-only'\n | 'cache-only'\n | 'no-cache'\n | 'standby';\n\nexport type WatchQueryFetchPolicy = FetchPolicy | 'cache-and-network';\n\nexport type MutationFetchPolicy = Extract<\n FetchPolicy,\n | 'network-only' // default behavior (mutation results written to cache)\n | 'no-cache' // alternate behavior (results not written to cache)\n>;\n\nexport type RefetchWritePolicy = \"merge\" | \"overwrite\";\n\n/**\n * errorPolicy determines the level of events for errors in the execution result. The options are:\n * - none (default): any errors from the request are treated like runtime errors and the observable is stopped (XXX this is default to lower breaking changes going from AC 1.0 => 2.0)\n * - ignore: errors from the request do not stop the observable, but also don't call `next`\n * - all: errors are treated like data and will notify observables\n */\nexport type ErrorPolicy = 'none' | 'ignore' | 'all';\n\n/**\n * Query options.\n */\nexport interface QueryOptions<TVariables = OperationVariables, TData = any> {\n /**\n * A GraphQL document that consists of a single query to be sent down to the\n * server.\n */\n // TODO REFACTOR: rename this to document. Didn't do it yet because it's in a\n // lot of tests.\n query: DocumentNode | TypedDocumentNode<TData, TVariables>;\n\n /**\n * A map going from variable name to variable value, where the variables are used\n * within the GraphQL query.\n */\n variables?: TVariables;\n\n /**\n * Specifies the {@link ErrorPolicy} to be used for this query\n */\n errorPolicy?: ErrorPolicy;\n\n /**\n * Context to be passed to link execution chain\n */\n context?: any;\n\n /**\n * Specifies the {@link FetchPolicy} to be used for this query\n */\n fetchPolicy?: FetchPolicy;\n\n /**\n * The time interval (in milliseconds) on which this query should be\n * refetched from the server.\n */\n pollInterval?: number;\n\n /**\n * Whether or not updates to the network status should trigger next on the observer of this query\n */\n notifyOnNetworkStatusChange?: boolean;\n\n /**\n * Allow returning incomplete data from the cache when a larger query cannot\n * be fully satisfied by the cache, instead of returning nothing.\n */\n returnPartialData?: boolean;\n\n /**\n * If `true`, perform a query `refetch` if the query result is marked as\n * being partial, and the returned data is reset to an empty Object by the\n * Apollo Client `QueryManager` (due to a cache miss).\n */\n partialRefetch?: boolean;\n\n /**\n * Whether to canonize cache results before returning them. Canonization\n * takes some extra time, but it speeds up future deep equality comparisons.\n * Defaults to false.\n */\n canonizeResults?: boolean;\n}\n\n/**\n * Watched query options.\n */\nexport interface WatchQueryOptions<TVariables = OperationVariables, TData = any>\n extends Omit<QueryOptions<TVariables, TData>, 'fetchPolicy'> {\n /**\n * Specifies the {@link FetchPolicy} to be used for this query.\n */\n fetchPolicy?: WatchQueryFetchPolicy;\n\n /**\n * Specifies the {@link FetchPolicy} to be used after this query has completed.\n */\n nextFetchPolicy?: WatchQueryFetchPolicy | ((\n this: WatchQueryOptions<TVariables, TData>,\n currentFetchPolicy: WatchQueryFetchPolicy,\n context: NextFetchPolicyContext<TData, TVariables>,\n ) => WatchQueryFetchPolicy);\n\n /**\n * Defaults to the initial value of options.fetchPolicy, but can be explicitly\n * configured to specify the WatchQueryFetchPolicy to revert back to whenever\n * variables change (unless nextFetchPolicy intervenes).\n */\n initialFetchPolicy?: WatchQueryFetchPolicy;\n\n /**\n * Specifies whether a {@link NetworkStatus.refetch} operation should merge\n * incoming field data with existing data, or overwrite the existing data.\n * Overwriting is probably preferable, but merging is currently the default\n * behavior, for backwards compatibility with Apollo Client 3.x.\n */\n refetchWritePolicy?: RefetchWritePolicy;\n}\n\nexport interface NextFetchPolicyContext<TData, TVariables> {\n reason:\n | \"after-fetch\"\n | \"variables-changed\";\n observable: ObservableQuery<TData, TVariables>;\n options: WatchQueryOptions<TVariables, TData>;\n initialFetchPolicy: WatchQueryFetchPolicy;\n}\n\nexport interface FetchMoreQueryOptions<TVariables, TData = any> {\n query?: DocumentNode | TypedDocumentNode<TData, TVariables>;\n variables?: Partial<TVariables>;\n context?: any;\n}\n\nexport type UpdateQueryFn<\n TData = any,\n TSubscriptionVariables = OperationVariables,\n TSubscriptionData = TData\n> = (\n previousQueryResult: TData,\n options: {\n subscriptionData: { data: TSubscriptionData };\n variables?: TSubscriptionVariables;\n },\n) => TData;\n\nexport type SubscribeToMoreOptions<\n TData = any,\n TSubscriptionVariables = OperationVariables,\n TSubscriptionData = TData\n> = {\n document: DocumentNode | TypedDocumentNode<TSubscriptionData, TSubscriptionVariables>;\n variables?: TSubscriptionVariables;\n updateQuery?: UpdateQueryFn<TData, TSubscriptionVariables, TSubscriptionData>;\n onError?: (error: Error) => void;\n context?: DefaultContext;\n};\n\nexport interface SubscriptionOptions<TVariables = OperationVariables, TData = any> {\n /**\n * A GraphQL document, often created with `gql` from the `graphql-tag`\n * package, that contains a single subscription inside of it.\n */\n query: DocumentNode | TypedDocumentNode<TData, TVariables>;\n\n /**\n * An object that maps from the name of a variable as used in the subscription\n * GraphQL document to that variable's value.\n */\n variables?: TVariables;\n\n /**\n * Specifies the {@link FetchPolicy} to be used for this subscription.\n */\n fetchPolicy?: FetchPolicy;\n\n /**\n * Specifies the {@link ErrorPolicy} to be used for this operation\n */\n errorPolicy?: ErrorPolicy;\n\n /**\n * Context object to be passed through the link execution chain.\n */\n context?: DefaultContext;\n}\n\nexport interface MutationBaseOptions<\n TData = any,\n TVariables = OperationVariables,\n TContext = DefaultContext,\n TCache extends ApolloCache<any> = ApolloCache<any>,\n> {\n /**\n * An object that represents the result of this mutation that will be\n * optimistically stored before the server has actually returned a result.\n * This is most often used for optimistic UI, where we want to be able to see\n * the result of a mutation immediately, and update the UI later if any errors\n * appear.\n */\n optimisticResponse?: TData | ((vars: TVariables) => TData);\n\n /**\n * A {@link MutationQueryReducersMap}, which is map from query names to\n * mutation query reducers. Briefly, this map defines how to incorporate the\n * results of the mutation into the results of queries that are currently\n * being watched by your application.\n */\n updateQueries?: MutationQueryReducersMap<TData>;\n\n /**\n * A list of query names which will be refetched once this mutation has\n * returned. This is often used if you have a set of queries which may be\n * affected by a mutation and will have to update. Rather than writing a\n * mutation query reducer (i.e. `updateQueries`) for this, you can simply\n * refetch the queries that will be affected and achieve a consistent store\n * once these queries return.\n */\n refetchQueries?:\n | ((result: FetchResult<TData>) => InternalRefetchQueriesInclude)\n | InternalRefetchQueriesInclude;\n\n /**\n * By default, `refetchQueries` does not wait for the refetched queries to\n * be completed, before resolving the mutation `Promise`. This ensures that\n * query refetching does not hold up mutation response handling (query\n * refetching is handled asynchronously). Set `awaitRefetchQueries` to\n * `true` if you would like to wait for the refetched queries to complete,\n * before the mutation can be marked as resolved.\n */\n awaitRefetchQueries?: boolean;\n\n /**\n * A function which provides an {@link ApolloCache} instance, and the result\n * of the mutation, to allow the user to update the store based on the\n * results of the mutation.\n *\n * This function will be called twice over the lifecycle of a mutation. Once\n * at the very beginning if an `optimisticResponse` was provided. The writes\n * created from the optimistic data will be rolled back before the second time\n * this function is called which is when the mutation has successfully\n * resolved. At that point `update` will be called with the *actual* mutation\n * result and those writes will not be rolled back.\n *\n * Note that since this function is intended to be used to update the\n * store, it cannot be used with a `no-cache` fetch policy. If you're\n * interested in performing some action after a mutation has completed,\n * and you don't need to update the store, use the Promise returned from\n * `client.mutate` instead.\n */\n update?: MutationUpdaterFunction<TData, TVariables, TContext, TCache>;\n\n /**\n * A function that will be called for each ObservableQuery affected by\n * this mutation, after the mutation has completed.\n */\n onQueryUpdated?: OnQueryUpdated<any>;\n\n /**\n * Specifies the {@link ErrorPolicy} to be used for this operation\n */\n errorPolicy?: ErrorPolicy;\n\n /**\n * An object that maps from the name of a variable as used in the mutation\n * GraphQL document to that variable's value.\n */\n variables?: TVariables;\n\n /**\n * The context to be passed to the link execution chain. This context will\n * only be used with this mutation. It will not be used with\n * `refetchQueries`. Refetched queries use the context they were\n * initialized with (since the initial context is stored as part of the\n * `ObservableQuery` instance). If a specific context is needed when\n * refetching queries, make sure it is configured (via the\n * [query `context` option](https://www.apollographql.com/docs/react/api/apollo-client#ApolloClient.query))\n * when the query is first initialized/run.\n */\n context?: TContext;\n}\n\nexport interface MutationOptions<\n TData = any,\n TVariables = OperationVariables,\n TContext = DefaultContext,\n TCache extends ApolloCache<any> = ApolloCache<any>,\n> extends MutationBaseOptions<TData, TVariables, TContext, TCache> {\n /**\n * A GraphQL document, often created with `gql` from the `graphql-tag`\n * package, that contains a single mutation inside of it.\n */\n mutation: DocumentNode | TypedDocumentNode<TData, TVariables>;\n\n /**\n * Specifies the {@link MutationFetchPolicy} to be used for this query.\n * Mutations support only 'network-only' and 'no-cache' fetchPolicy strings.\n * If fetchPolicy is not provided, it defaults to 'network-only'.\n */\n fetchPolicy?: MutationFetchPolicy;\n\n /**\n * To avoid retaining sensitive information from mutation root field\n * arguments, Apollo Client v3.4+ automatically clears any `ROOT_MUTATION`\n * fields from the cache after each mutation finishes. If you need this\n * information to remain in the cache, you can prevent the removal by passing\n * `keepRootFields: true` to the mutation. `ROOT_MUTATION` result data are\n * also passed to the mutation `update` function, so we recommend obtaining\n * the results that way, rather than using this option, if possible.\n */\n keepRootFields?: boolean;\n}\n"]}
package/errors/errors.cjs CHANGED
@@ -18,11 +18,11 @@ var generateErrorMessage = function (err) {
18
18
  var errorMessage = error
19
19
  ? error.message
20
20
  : 'Error message not found.';
21
- message += errorMessage + "\n";
21
+ message += "".concat(errorMessage, "\n");
22
22
  });
23
23
  }
24
24
  if (err.networkError) {
25
- message += err.networkError.message + "\n";
25
+ message += "".concat(err.networkError.message, "\n");
26
26
  }
27
27
  message = message.replace(/\n$/, '');
28
28
  return message;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.cjs","sources":["index.js"],"sourcesContent":["import { __extends } from \"tslib\";\nimport '../utilities/globals';\nimport { isNonEmptyArray } from '../utilities';\nexport function isApolloError(err) {\n return err.hasOwnProperty('graphQLErrors');\n}\nvar generateErrorMessage = function (err) {\n var message = '';\n if (isNonEmptyArray(err.graphQLErrors) || isNonEmptyArray(err.clientErrors)) {\n var errors = (err.graphQLErrors || [])\n .concat(err.clientErrors || []);\n errors.forEach(function (error) {\n var errorMessage = error\n ? error.message\n : 'Error message not found.';\n message += errorMessage + \"\\n\";\n });\n }\n if (err.networkError) {\n message += err.networkError.message + \"\\n\";\n }\n message = message.replace(/\\n$/, '');\n return message;\n};\nvar ApolloError = (function (_super) {\n __extends(ApolloError, _super);\n function ApolloError(_a) {\n var graphQLErrors = _a.graphQLErrors, clientErrors = _a.clientErrors, networkError = _a.networkError, errorMessage = _a.errorMessage, extraInfo = _a.extraInfo;\n var _this = _super.call(this, errorMessage) || this;\n _this.graphQLErrors = graphQLErrors || [];\n _this.clientErrors = clientErrors || [];\n _this.networkError = networkError || null;\n _this.message = errorMessage || generateErrorMessage(_this);\n _this.extraInfo = extraInfo;\n _this.__proto__ = ApolloError.prototype;\n return _this;\n }\n return ApolloError;\n}(Error));\nexport { ApolloError };\n//# sourceMappingURL=index.js.map"],"names":["isNonEmptyArray","__extends"],"mappings":";;;;;;;;AAGO,SAAS,aAAa,CAAC,GAAG,EAAE;AACnC,IAAI,OAAO,GAAG,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;AAC/C,CAAC;AACD,IAAI,oBAAoB,GAAG,UAAU,GAAG,EAAE;AAC1C,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC;AACrB,IAAI,IAAIA,yBAAe,CAAC,GAAG,CAAC,aAAa,CAAC,IAAIA,yBAAe,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;AACjF,QAAQ,IAAI,MAAM,GAAG,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE;AAC7C,aAAa,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;AAC5C,QAAQ,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;AACxC,YAAY,IAAI,YAAY,GAAG,KAAK;AACpC,kBAAkB,KAAK,CAAC,OAAO;AAC/B,kBAAkB,0BAA0B,CAAC;AAC7C,YAAY,OAAO,IAAI,YAAY,GAAG,IAAI,CAAC;AAC3C,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,IAAI,GAAG,CAAC,YAAY,EAAE;AAC1B,QAAQ,OAAO,IAAI,GAAG,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;AACnD,KAAK;AACL,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACzC,IAAI,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AACC,IAAC,WAAW,IAAI,UAAU,MAAM,EAAE;AACrC,IAAIC,eAAS,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACnC,IAAI,SAAS,WAAW,CAAC,EAAE,EAAE;AAC7B,QAAQ,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,EAAE,YAAY,GAAG,EAAE,CAAC,YAAY,EAAE,YAAY,GAAG,EAAE,CAAC,YAAY,EAAE,YAAY,GAAG,EAAE,CAAC,YAAY,EAAE,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;AACvK,QAAQ,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,IAAI,CAAC;AAC5D,QAAQ,KAAK,CAAC,aAAa,GAAG,aAAa,IAAI,EAAE,CAAC;AAClD,QAAQ,KAAK,CAAC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;AAChD,QAAQ,KAAK,CAAC,YAAY,GAAG,YAAY,IAAI,IAAI,CAAC;AAClD,QAAQ,KAAK,CAAC,OAAO,GAAG,YAAY,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACpE,QAAQ,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;AACpC,QAAQ,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;AAChD,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,OAAO,WAAW,CAAC;AACvB,CAAC,CAAC,KAAK,CAAC;;;;;"}
1
+ {"version":3,"file":"errors.cjs","sources":["index.js"],"sourcesContent":["import { __extends } from \"tslib\";\nimport '../utilities/globals';\nimport { isNonEmptyArray } from '../utilities';\nexport function isApolloError(err) {\n return err.hasOwnProperty('graphQLErrors');\n}\nvar generateErrorMessage = function (err) {\n var message = '';\n if (isNonEmptyArray(err.graphQLErrors) || isNonEmptyArray(err.clientErrors)) {\n var errors = (err.graphQLErrors || [])\n .concat(err.clientErrors || []);\n errors.forEach(function (error) {\n var errorMessage = error\n ? error.message\n : 'Error message not found.';\n message += \"\".concat(errorMessage, \"\\n\");\n });\n }\n if (err.networkError) {\n message += \"\".concat(err.networkError.message, \"\\n\");\n }\n message = message.replace(/\\n$/, '');\n return message;\n};\nvar ApolloError = (function (_super) {\n __extends(ApolloError, _super);\n function ApolloError(_a) {\n var graphQLErrors = _a.graphQLErrors, clientErrors = _a.clientErrors, networkError = _a.networkError, errorMessage = _a.errorMessage, extraInfo = _a.extraInfo;\n var _this = _super.call(this, errorMessage) || this;\n _this.graphQLErrors = graphQLErrors || [];\n _this.clientErrors = clientErrors || [];\n _this.networkError = networkError || null;\n _this.message = errorMessage || generateErrorMessage(_this);\n _this.extraInfo = extraInfo;\n _this.__proto__ = ApolloError.prototype;\n return _this;\n }\n return ApolloError;\n}(Error));\nexport { ApolloError };\n//# sourceMappingURL=index.js.map"],"names":["isNonEmptyArray","__extends"],"mappings":";;;;;;;;AAGO,SAAS,aAAa,CAAC,GAAG,EAAE;AACnC,IAAI,OAAO,GAAG,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;AAC/C,CAAC;AACD,IAAI,oBAAoB,GAAG,UAAU,GAAG,EAAE;AAC1C,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC;AACrB,IAAI,IAAIA,yBAAe,CAAC,GAAG,CAAC,aAAa,CAAC,IAAIA,yBAAe,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;AACjF,QAAQ,IAAI,MAAM,GAAG,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE;AAC7C,aAAa,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;AAC5C,QAAQ,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;AACxC,YAAY,IAAI,YAAY,GAAG,KAAK;AACpC,kBAAkB,KAAK,CAAC,OAAO;AAC/B,kBAAkB,0BAA0B,CAAC;AAC7C,YAAY,OAAO,IAAI,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACrD,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,IAAI,GAAG,CAAC,YAAY,EAAE;AAC1B,QAAQ,OAAO,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC7D,KAAK;AACL,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACzC,IAAI,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AACC,IAAC,WAAW,IAAI,UAAU,MAAM,EAAE;AACrC,IAAIC,eAAS,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACnC,IAAI,SAAS,WAAW,CAAC,EAAE,EAAE;AAC7B,QAAQ,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,EAAE,YAAY,GAAG,EAAE,CAAC,YAAY,EAAE,YAAY,GAAG,EAAE,CAAC,YAAY,EAAE,YAAY,GAAG,EAAE,CAAC,YAAY,EAAE,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;AACvK,QAAQ,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,IAAI,CAAC;AAC5D,QAAQ,KAAK,CAAC,aAAa,GAAG,aAAa,IAAI,EAAE,CAAC;AAClD,QAAQ,KAAK,CAAC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;AAChD,QAAQ,KAAK,CAAC,YAAY,GAAG,YAAY,IAAI,IAAI,CAAC;AAClD,QAAQ,KAAK,CAAC,OAAO,GAAG,YAAY,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACpE,QAAQ,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;AACpC,QAAQ,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;AAChD,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,OAAO,WAAW,CAAC;AACvB,CAAC,CAAC,KAAK,CAAC;;;;;"}
package/errors/index.js CHANGED
@@ -13,11 +13,11 @@ var generateErrorMessage = function (err) {
13
13
  var errorMessage = error
14
14
  ? error.message
15
15
  : 'Error message not found.';
16
- message += errorMessage + "\n";
16
+ message += "".concat(errorMessage, "\n");
17
17
  });
18
18
  }
19
19
  if (err.networkError) {
20
- message += err.networkError.message + "\n";
20
+ message += "".concat(err.networkError.message, "\n");
21
21
  }
22
22
  message = message.replace(/\n$/, '');
23
23
  return message;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";AAAA,OAAO,sBAAsB,CAAC;AAI9B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAI/C,MAAM,UAAU,aAAa,CAAC,GAAU;IACtC,OAAO,GAAG,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;AAC7C,CAAC;AAMD,IAAM,oBAAoB,GAAG,UAAC,GAAgB;IAC5C,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,IAAI,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;QAC3E,IAAM,MAAM,GAAI,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAsB;aAC3D,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QAClC,MAAM,CAAC,OAAO,CAAC,UAAC,KAAY;YAC1B,IAAM,YAAY,GAAG,KAAK;gBACxB,CAAC,CAAC,KAAK,CAAC,OAAO;gBACf,CAAC,CAAC,0BAA0B,CAAC;YAC/B,OAAO,IAAO,YAAY,OAAI,CAAC;QACjC,CAAC,CAAC,CAAC;KACJ;IAED,IAAI,GAAG,CAAC,YAAY,EAAE;QACpB,OAAO,IAAO,GAAG,CAAC,YAAY,CAAC,OAAO,OAAI,CAAC;KAC5C;IAGD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrC,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAMF;IAAiC,+BAAK;IAcpC,qBAAY,EAYX;YAXC,aAAa,mBAAA,EACb,YAAY,kBAAA,EACZ,YAAY,kBAAA,EACZ,YAAY,kBAAA,EACZ,SAAS,eAAA;QALX,YAaE,kBAAM,YAAY,CAAC,SAUpB;QATC,KAAI,CAAC,aAAa,GAAG,aAAa,IAAI,EAAE,CAAC;QACzC,KAAI,CAAC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;QACvC,KAAI,CAAC,YAAY,GAAG,YAAY,IAAI,IAAI,CAAC;QACzC,KAAI,CAAC,OAAO,GAAG,YAAY,IAAI,oBAAoB,CAAC,KAAI,CAAC,CAAC;QAC1D,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAI1B,KAAY,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;;IAClD,CAAC;IACH,kBAAC;AAAD,CAAC,AAtCD,CAAiC,KAAK,GAsCrC","sourcesContent":["import '../utilities/globals';\n\nimport { GraphQLError } from 'graphql';\n\nimport { isNonEmptyArray } from '../utilities';\nimport { ServerParseError } from '../link/http';\nimport { ServerError } from '../link/utils';\n\nexport function isApolloError(err: Error): err is ApolloError {\n return err.hasOwnProperty('graphQLErrors');\n}\n\n// Sets the error message on this error according to the\n// the GraphQL and network errors that are present.\n// If the error message has already been set through the\n// constructor or otherwise, this function is a nop.\nconst generateErrorMessage = (err: ApolloError) => {\n let message = '';\n // If we have GraphQL errors present, add that to the error message.\n if (isNonEmptyArray(err.graphQLErrors) || isNonEmptyArray(err.clientErrors)) {\n const errors = ((err.graphQLErrors || []) as readonly Error[])\n .concat(err.clientErrors || []);\n errors.forEach((error: Error) => {\n const errorMessage = error\n ? error.message\n : 'Error message not found.';\n message += `${errorMessage}\\n`;\n });\n }\n\n if (err.networkError) {\n message += `${err.networkError.message}\\n`;\n }\n\n // strip newline from the end of the message\n message = message.replace(/\\n$/, '');\n return message;\n};\n\nexport type GraphQLErrors = ReadonlyArray<GraphQLError>;\n\nexport type NetworkError = Error | ServerParseError | ServerError | null;\n\nexport class ApolloError extends Error {\n public message: string;\n public graphQLErrors: GraphQLErrors;\n public clientErrors: ReadonlyArray<Error>;\n public networkError: Error | ServerParseError | ServerError | null;\n\n // An object that can be used to provide some additional information\n // about an error, e.g. specifying the type of error this is. Used\n // internally within Apollo Client.\n public extraInfo: any;\n\n // Constructs an instance of ApolloError given a GraphQLError\n // or a network error. Note that one of these has to be a valid\n // value or the constructed error will be meaningless.\n constructor({\n graphQLErrors,\n clientErrors,\n networkError,\n errorMessage,\n extraInfo,\n }: {\n graphQLErrors?: ReadonlyArray<GraphQLError>;\n clientErrors?: ReadonlyArray<Error>;\n networkError?: Error | ServerParseError | ServerError | null;\n errorMessage?: string;\n extraInfo?: any;\n }) {\n super(errorMessage);\n this.graphQLErrors = graphQLErrors || [];\n this.clientErrors = clientErrors || [];\n this.networkError = networkError || null;\n this.message = errorMessage || generateErrorMessage(this);\n this.extraInfo = extraInfo;\n\n // We're not using `Object.setPrototypeOf` here as it isn't fully\n // supported on Android (see issue #3236).\n (this as any).__proto__ = ApolloError.prototype;\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";AAAA,OAAO,sBAAsB,CAAC;AAI9B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAI/C,MAAM,UAAU,aAAa,CAAC,GAAU;IACtC,OAAO,GAAG,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;AAC7C,CAAC;AAMD,IAAM,oBAAoB,GAAG,UAAC,GAAgB;IAC5C,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,IAAI,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;QAC3E,IAAM,MAAM,GAAI,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAsB;aAC3D,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QAClC,MAAM,CAAC,OAAO,CAAC,UAAC,KAAY;YAC1B,IAAM,YAAY,GAAG,KAAK;gBACxB,CAAC,CAAC,KAAK,CAAC,OAAO;gBACf,CAAC,CAAC,0BAA0B,CAAC;YAC/B,OAAO,IAAI,UAAG,YAAY,OAAI,CAAC;QACjC,CAAC,CAAC,CAAC;KACJ;IAED,IAAI,GAAG,CAAC,YAAY,EAAE;QACpB,OAAO,IAAI,UAAG,GAAG,CAAC,YAAY,CAAC,OAAO,OAAI,CAAC;KAC5C;IAGD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrC,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAMF;IAAiC,+BAAK;IAcpC,qBAAY,EAYX;YAXC,aAAa,mBAAA,EACb,YAAY,kBAAA,EACZ,YAAY,kBAAA,EACZ,YAAY,kBAAA,EACZ,SAAS,eAAA;QALX,YAaE,kBAAM,YAAY,CAAC,SAUpB;QATC,KAAI,CAAC,aAAa,GAAG,aAAa,IAAI,EAAE,CAAC;QACzC,KAAI,CAAC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;QACvC,KAAI,CAAC,YAAY,GAAG,YAAY,IAAI,IAAI,CAAC;QACzC,KAAI,CAAC,OAAO,GAAG,YAAY,IAAI,oBAAoB,CAAC,KAAI,CAAC,CAAC;QAC1D,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAI1B,KAAY,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;;IAClD,CAAC;IACH,kBAAC;AAAD,CAAC,AAtCD,CAAiC,KAAK,GAsCrC","sourcesContent":["import '../utilities/globals';\n\nimport { GraphQLError } from 'graphql';\n\nimport { isNonEmptyArray } from '../utilities';\nimport { ServerParseError } from '../link/http';\nimport { ServerError } from '../link/utils';\n\nexport function isApolloError(err: Error): err is ApolloError {\n return err.hasOwnProperty('graphQLErrors');\n}\n\n// Sets the error message on this error according to the\n// the GraphQL and network errors that are present.\n// If the error message has already been set through the\n// constructor or otherwise, this function is a nop.\nconst generateErrorMessage = (err: ApolloError) => {\n let message = '';\n // If we have GraphQL errors present, add that to the error message.\n if (isNonEmptyArray(err.graphQLErrors) || isNonEmptyArray(err.clientErrors)) {\n const errors = ((err.graphQLErrors || []) as readonly Error[])\n .concat(err.clientErrors || []);\n errors.forEach((error: Error) => {\n const errorMessage = error\n ? error.message\n : 'Error message not found.';\n message += `${errorMessage}\\n`;\n });\n }\n\n if (err.networkError) {\n message += `${err.networkError.message}\\n`;\n }\n\n // strip newline from the end of the message\n message = message.replace(/\\n$/, '');\n return message;\n};\n\nexport type GraphQLErrors = ReadonlyArray<GraphQLError>;\n\nexport type NetworkError = Error | ServerParseError | ServerError | null;\n\nexport class ApolloError extends Error {\n public message: string;\n public graphQLErrors: GraphQLErrors;\n public clientErrors: ReadonlyArray<Error>;\n public networkError: Error | ServerParseError | ServerError | null;\n\n // An object that can be used to provide some additional information\n // about an error, e.g. specifying the type of error this is. Used\n // internally within Apollo Client.\n public extraInfo: any;\n\n // Constructs an instance of ApolloError given a GraphQLError\n // or a network error. Note that one of these has to be a valid\n // value or the constructed error will be meaningless.\n constructor({\n graphQLErrors,\n clientErrors,\n networkError,\n errorMessage,\n extraInfo,\n }: {\n graphQLErrors?: ReadonlyArray<GraphQLError>;\n clientErrors?: ReadonlyArray<Error>;\n networkError?: Error | ServerParseError | ServerError | null;\n errorMessage?: string;\n extraInfo?: any;\n }) {\n super(errorMessage);\n this.graphQLErrors = graphQLErrors || [];\n this.clientErrors = clientErrors || [];\n this.networkError = networkError || null;\n this.message = errorMessage || generateErrorMessage(this);\n this.extraInfo = extraInfo;\n\n // We're not using `Object.setPrototypeOf` here as it isn't fully\n // supported on Android (see issue #3236).\n (this as any).__proto__ = ApolloError.prototype;\n }\n}\n"]}
@@ -5,7 +5,7 @@
5
5
  // consult the @apollo/client/invariantErrorCodes.js file specific to
6
6
  // your @apollo/client version. This file is not meant to be imported.
7
7
  {
8
- "@apollo/client version": "3.6.0-beta.0",
8
+ "@apollo/client version": "3.6.0-beta.11",
9
9
 
10
10
  1: {
11
11
  file: "@apollo/client/cache/inmemory/entityStore.js",
@@ -14,12 +14,12 @@
14
14
 
15
15
  2: {
16
16
  file: "@apollo/client/cache/inmemory/key-extractor.js",
17
- node: invariant(extracted !== void 0, "Missing field '" + schemaKeyPath.join('.') + "' while extracting keyFields from " + JSON.stringify(object))
17
+ node: invariant(extracted !== void 0, "Missing field '".concat(schemaKeyPath.join('.'), "' while extracting keyFields from ").concat(JSON.stringify(object)))
18
18
  },
19
19
 
20
20
  3: {
21
21
  file: "@apollo/client/cache/inmemory/policies.js",
22
- node: invariant(!old || old === which, "Cannot change root " + which + " __typename more than once")
22
+ node: invariant(!old || old === which, "Cannot change root ".concat(which, " __typename more than once"))
23
23
  },
24
24
 
25
25
  4: {
@@ -29,12 +29,12 @@
29
29
 
30
30
  5: {
31
31
  file: "@apollo/client/cache/inmemory/readFromStore.js",
32
- node: invariant(!isReference(value), "Missing selection set for object of type " + getTypenameFromStoreObject(store, value) + " returned for query field " + field.name.value)
32
+ node: invariant(!isReference(value), "Missing selection set for object of type ".concat(getTypenameFromStoreObject(store, value), " returned for query field ").concat(field.name.value))
33
33
  },
34
34
 
35
35
  6: {
36
36
  file: "@apollo/client/cache/inmemory/writeToStore.js",
37
- node: new InvariantError("Could not identify object " + JSON.stringify(result))
37
+ node: new InvariantError("Could not identify object ".concat(JSON.stringify(result)))
38
38
  },
39
39
 
40
40
  7: {
@@ -56,7 +56,7 @@
56
56
 
57
57
  9: {
58
58
  file: "@apollo/client/core/LocalState.js",
59
- node: invariant(fragment, "No fragment named " + selection.name.value)
59
+ node: invariant(fragment, "No fragment named ".concat(selection.name.value))
60
60
  },
61
61
 
62
62
  10: {
@@ -120,7 +120,7 @@
120
120
 
121
121
  21: {
122
122
  file: "@apollo/client/link/http/serializeFetchParameter.js",
123
- node: new InvariantError("Network request failed. " + label + " is not serializable: " + e.message)
123
+ node: new InvariantError("Network request failed. ".concat(label, " is not serializable: ").concat(e.message))
124
124
  },
125
125
 
126
126
  22: {
@@ -139,7 +139,7 @@
139
139
 
140
140
  24: {
141
141
  file: "@apollo/client/link/utils/validateOperation.js",
142
- node: new InvariantError("illegal argument: " + key)
142
+ node: new InvariantError("illegal argument: ".concat(key))
143
143
  },
144
144
 
145
145
  25: {
@@ -174,14 +174,14 @@
174
174
  file: "@apollo/client/react/hooks/useApolloClient.js",
175
175
 
176
176
  node: invariant(!!client, 'Could not find "client" in the context or passed in as an option. ' +
177
- 'Wrap the root component in an <ApolloProvider>, or pass an ApolloClient' +
178
- 'ApolloClient instance in via options.')
177
+ 'Wrap the root component in an <ApolloProvider>, or pass an ApolloClient ' +
178
+ 'instance in via options.')
179
179
  },
180
180
 
181
181
  30: {
182
182
  file: "@apollo/client/react/parser/index.js",
183
183
 
184
- node: invariant(!!document && !!document.kind, "Argument of " + document + " passed to parser was not a valid GraphQL " +
184
+ node: invariant(!!document && !!document.kind, "Argument of ".concat(document, " passed to parser was not a valid GraphQL ") +
185
185
  "DocumentNode. You may need to use 'graphql-tag' or another method " +
186
186
  "to convert your operation into a document")
187
187
  },
@@ -198,24 +198,24 @@
198
198
  file: "@apollo/client/react/parser/index.js",
199
199
 
200
200
  node: invariant(queries.length + mutations.length + subscriptions.length <= 1, "react-apollo only supports a query, subscription, or a mutation per HOC. " +
201
- (document + " had " + queries.length + " queries, " + subscriptions.length + " ") +
202
- ("subscriptions and " + mutations.length + " mutations. ") +
201
+ "".concat(document, " had ").concat(queries.length, " queries, ").concat(subscriptions.length, " ") +
202
+ "subscriptions and ".concat(mutations.length, " mutations. ") +
203
203
  "You can use 'compose' to join multiple operation types to a component")
204
204
  },
205
205
 
206
206
  33: {
207
207
  file: "@apollo/client/react/parser/index.js",
208
208
 
209
- node: invariant(definitions.length === 1, "react-apollo only supports one definition per HOC. " + document + " had " +
210
- (definitions.length + " definitions. ") +
209
+ node: invariant(definitions.length === 1, "react-apollo only supports one definition per HOC. ".concat(document, " had ") +
210
+ "".concat(definitions.length, " definitions. ") +
211
211
  "You can use 'compose' to join multiple operation types to a component")
212
212
  },
213
213
 
214
214
  34: {
215
215
  file: "@apollo/client/react/parser/index.js",
216
216
 
217
- node: invariant(operation.type === type, "Running a " + requiredOperationName + " requires a graphql " +
218
- (requiredOperationName + ", but a " + usedOperationName + " was used instead."))
217
+ node: invariant(operation.type === type, "Running a ".concat(requiredOperationName, " requires a graphql ") +
218
+ "".concat(requiredOperationName, ", but a ").concat(usedOperationName, " was used instead."))
219
219
  },
220
220
 
221
221
  35: {
@@ -230,41 +230,41 @@
230
230
 
231
231
  37: {
232
232
  file: "@apollo/client/utilities/graphql/directives.js",
233
- node: invariant(evaledValue !== void 0, "Invalid variable referenced in @" + directive.name.value + " directive.")
233
+ node: invariant(evaledValue !== void 0, "Invalid variable referenced in @".concat(directive.name.value, " directive."))
234
234
  },
235
235
 
236
236
  38: {
237
237
  file: "@apollo/client/utilities/graphql/directives.js",
238
- node: invariant(directiveArguments && directiveArguments.length === 1, "Incorrect number of arguments for the @" + directiveName + " directive.")
238
+ node: invariant(directiveArguments && directiveArguments.length === 1, "Incorrect number of arguments for the @".concat(directiveName, " directive."))
239
239
  },
240
240
 
241
241
  39: {
242
242
  file: "@apollo/client/utilities/graphql/directives.js",
243
- node: invariant(ifArgument.name && ifArgument.name.value === 'if', "Invalid argument for the @" + directiveName + " directive.")
243
+ node: invariant(ifArgument.name && ifArgument.name.value === 'if', "Invalid argument for the @".concat(directiveName, " directive."))
244
244
  },
245
245
 
246
246
  40: {
247
247
  file: "@apollo/client/utilities/graphql/directives.js",
248
248
 
249
249
  node: invariant(ifValue &&
250
- (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), "Argument for the @" + directiveName + " directive must be a variable or a boolean value.")
250
+ (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), "Argument for the @".concat(directiveName, " directive must be a variable or a boolean value."))
251
251
  },
252
252
 
253
253
  41: {
254
254
  file: "@apollo/client/utilities/graphql/fragments.js",
255
255
 
256
- node: new InvariantError("Found a " + definition.operation + " operation" + (definition.name ? " named '" + definition.name.value + "'" : '') + ". " +
256
+ node: new InvariantError("Found a ".concat(definition.operation, " operation").concat(definition.name ? " named '".concat(definition.name.value, "'") : '', ". ") +
257
257
  'No operations are allowed when using a fragment as a query. Only fragments are allowed.')
258
258
  },
259
259
 
260
260
  42: {
261
261
  file: "@apollo/client/utilities/graphql/fragments.js",
262
- node: invariant(fragments.length === 1, "Found " + fragments.length + " fragments. `fragmentName` must be provided when there is not exactly 1 fragment.")
262
+ node: invariant(fragments.length === 1, "Found ".concat(fragments.length, " fragments. `fragmentName` must be provided when there is not exactly 1 fragment."))
263
263
  },
264
264
 
265
265
  43: {
266
266
  file: "@apollo/client/utilities/graphql/fragments.js",
267
- node: invariant(fragment, "No fragment named " + selection.name.value + ".")
267
+ node: invariant(fragment, "No fragment named ".concat(selection.name.value, "."))
268
268
  },
269
269
 
270
270
  44: {
@@ -274,12 +274,12 @@
274
274
 
275
275
  45: {
276
276
  file: "@apollo/client/utilities/graphql/getFromAST.js",
277
- node: new InvariantError("Schema type definitions not allowed in queries. Found: \"" + definition.kind + "\"")
277
+ node: new InvariantError("Schema type definitions not allowed in queries. Found: \"".concat(definition.kind, "\""))
278
278
  },
279
279
 
280
280
  46: {
281
281
  file: "@apollo/client/utilities/graphql/getFromAST.js",
282
- node: invariant(operations.length <= 1, "Ambiguous GraphQL document: contains " + operations.length + " operations")
282
+ node: invariant(operations.length <= 1, "Ambiguous GraphQL document: contains ".concat(operations.length, " operations"))
283
283
  },
284
284
 
285
285
  47: {
@@ -310,7 +310,7 @@
310
310
  52: {
311
311
  file: "@apollo/client/utilities/graphql/storeUtils.js",
312
312
 
313
- node: new InvariantError("The inline argument \"" + name.value + "\" of kind \"" + value.kind + "\"" +
313
+ node: new InvariantError("The inline argument \"".concat(name.value, "\" of kind \"").concat(value.kind, "\"") +
314
314
  'is not supported. Use variables instead of inline arguments to ' +
315
315
  'overcome this limitation.')
316
316
  }
@@ -9,7 +9,7 @@ var utilities = require('../../utilities');
9
9
  var OperationBatcher = (function () {
10
10
  function OperationBatcher(_a) {
11
11
  var batchDebounce = _a.batchDebounce, batchInterval = _a.batchInterval, batchMax = _a.batchMax, batchHandler = _a.batchHandler, batchKey = _a.batchKey;
12
- this.queuedRequests = new Map();
12
+ this.batchesByKey = new Map();
13
13
  this.batchDebounce = batchDebounce;
14
14
  this.batchInterval = batchInterval;
15
15
  this.batchMax = batchMax || 0;
@@ -18,61 +18,75 @@ var OperationBatcher = (function () {
18
18
  }
19
19
  OperationBatcher.prototype.enqueueRequest = function (request) {
20
20
  var _this = this;
21
- var requestCopy = tslib.__assign({}, request);
22
- var queued = false;
21
+ var requestCopy = tslib.__assign(tslib.__assign({}, request), { next: [], error: [], complete: [], subscribers: new Set() });
23
22
  var key = this.batchKey(request.operation);
24
23
  if (!requestCopy.observable) {
25
24
  requestCopy.observable = new utilities.Observable(function (observer) {
26
- if (!_this.queuedRequests.has(key)) {
27
- _this.queuedRequests.set(key, []);
25
+ var batch = _this.batchesByKey.get(key);
26
+ if (!batch)
27
+ _this.batchesByKey.set(key, batch = new Set());
28
+ var isFirstEnqueuedRequest = batch.size === 0;
29
+ var isFirstSubscriber = requestCopy.subscribers.size === 0;
30
+ requestCopy.subscribers.add(observer);
31
+ if (isFirstSubscriber) {
32
+ batch.add(requestCopy);
28
33
  }
29
- if (!queued) {
30
- _this.queuedRequests.get(key).push(requestCopy);
31
- queued = true;
32
- }
33
- requestCopy.next = requestCopy.next || [];
34
- if (observer.next)
34
+ if (observer.next) {
35
35
  requestCopy.next.push(observer.next.bind(observer));
36
- requestCopy.error = requestCopy.error || [];
37
- if (observer.error)
36
+ }
37
+ if (observer.error) {
38
38
  requestCopy.error.push(observer.error.bind(observer));
39
- requestCopy.complete = requestCopy.complete || [];
40
- if (observer.complete)
39
+ }
40
+ if (observer.complete) {
41
41
  requestCopy.complete.push(observer.complete.bind(observer));
42
- if (_this.queuedRequests.get(key).length === 1) {
42
+ }
43
+ if (isFirstEnqueuedRequest) {
43
44
  _this.scheduleQueueConsumption(key);
44
45
  }
45
46
  else if (_this.batchDebounce) {
46
47
  clearTimeout(_this.scheduledBatchTimer);
47
48
  _this.scheduleQueueConsumption(key);
48
49
  }
49
- if (_this.queuedRequests.get(key).length === _this.batchMax) {
50
+ if (batch.size === _this.batchMax) {
50
51
  _this.consumeQueue(key);
51
52
  }
53
+ return function () {
54
+ var _a;
55
+ if (requestCopy.subscribers.delete(observer) &&
56
+ requestCopy.subscribers.size < 1) {
57
+ if (batch.delete(requestCopy) && batch.size < 1) {
58
+ clearTimeout(_this.scheduledBatchTimer);
59
+ _this.batchesByKey.delete(key);
60
+ (_a = batch.subscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
61
+ }
62
+ }
63
+ };
52
64
  });
53
65
  }
54
66
  return requestCopy.observable;
55
67
  };
56
68
  OperationBatcher.prototype.consumeQueue = function (key) {
57
- var requestKey = key || '';
58
- var queuedRequests = this.queuedRequests.get(requestKey);
59
- if (!queuedRequests) {
69
+ if (key === void 0) { key = ''; }
70
+ var batch = this.batchesByKey.get(key);
71
+ this.batchesByKey.delete(key);
72
+ if (!batch || !batch.size) {
60
73
  return;
61
74
  }
62
- this.queuedRequests.delete(requestKey);
63
- var requests = queuedRequests.map(function (queuedRequest) { return queuedRequest.operation; });
64
- var forwards = queuedRequests.map(function (queuedRequest) { return queuedRequest.forward; });
75
+ var operations = [];
76
+ var forwards = [];
65
77
  var observables = [];
66
78
  var nexts = [];
67
79
  var errors = [];
68
80
  var completes = [];
69
- queuedRequests.forEach(function (batchableRequest, index) {
70
- observables.push(batchableRequest.observable);
71
- nexts.push(batchableRequest.next);
72
- errors.push(batchableRequest.error);
73
- completes.push(batchableRequest.complete);
81
+ batch.forEach(function (request) {
82
+ operations.push(request.operation);
83
+ forwards.push(request.forward);
84
+ observables.push(request.observable);
85
+ nexts.push(request.next);
86
+ errors.push(request.error);
87
+ completes.push(request.complete);
74
88
  });
75
- var batchedObservable = this.batchHandler(requests, forwards) || utilities.Observable.of();
89
+ var batchedObservable = this.batchHandler(operations, forwards) || utilities.Observable.of();
76
90
  var onError = function (error) {
77
91
  errors.forEach(function (rejecters) {
78
92
  if (rejecters) {
@@ -80,13 +94,13 @@ var OperationBatcher = (function () {
80
94
  }
81
95
  });
82
96
  };
83
- batchedObservable.subscribe({
97
+ batch.subscription = batchedObservable.subscribe({
84
98
  next: function (results) {
85
99
  if (!Array.isArray(results)) {
86
100
  results = [results];
87
101
  }
88
102
  if (nexts.length !== results.length) {
89
- var error = new Error("server returned results with length " + results.length + ", expected length of " + nexts.length);
103
+ var error = new Error("server returned results with length ".concat(results.length, ", expected length of ").concat(nexts.length));
90
104
  error.result = results;
91
105
  return onError(error);
92
106
  }
@@ -109,13 +123,9 @@ var OperationBatcher = (function () {
109
123
  };
110
124
  OperationBatcher.prototype.scheduleQueueConsumption = function (key) {
111
125
  var _this = this;
112
- var requestKey = key || '';
113
- this.scheduledBatchTimer = (setTimeout(function () {
114
- if (_this.queuedRequests.get(requestKey) &&
115
- _this.queuedRequests.get(requestKey).length) {
116
- _this.consumeQueue(requestKey);
117
- }
118
- }, this.batchInterval));
126
+ this.scheduledBatchTimer = setTimeout(function () {
127
+ _this.consumeQueue(key);
128
+ }, this.batchInterval);
119
129
  };
120
130
  return OperationBatcher;
121
131
  }());