@apollo/client 3.9.0-alpha.5 → 3.9.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. package/.changeset/chatty-comics-yawn.md +8 -0
  2. package/.changeset/curvy-seas-hope.md +13 -0
  3. package/.changeset/dirty-tigers-matter.md +13 -0
  4. package/.changeset/late-rabbits-protect.md +7 -0
  5. package/.changeset/mighty-coats-check.md +47 -0
  6. package/.changeset/pre.json +15 -1
  7. package/.changeset/rare-snakes-melt.md +24 -0
  8. package/.changeset/smooth-plums-shout.md +5 -0
  9. package/.changeset/spicy-drinks-camp.md +5 -0
  10. package/.changeset/swift-zoos-collect.md +19 -0
  11. package/.changeset/thick-tips-cry.md +9 -0
  12. package/.changeset/tough-timers-begin.md +8 -0
  13. package/.changeset/unlucky-rats-decide.md +5 -0
  14. package/.changeset/wet-forks-rhyme.md +5 -0
  15. package/.changeset/wise-news-grab.md +7 -0
  16. package/CHANGELOG.md +151 -4
  17. package/apollo-client.cjs +337 -88
  18. package/apollo-client.cjs.map +1 -1
  19. package/apollo-client.min.cjs +1 -1
  20. package/cache/cache.cjs +78 -6
  21. package/cache/cache.cjs.map +1 -1
  22. package/cache/cache.cjs.native.js +78 -6
  23. package/cache/core/cache.d.ts +9 -0
  24. package/cache/core/cache.js +11 -2
  25. package/cache/core/cache.js.map +1 -1
  26. package/cache/core/types/Cache.d.ts +7 -0
  27. package/cache/core/types/Cache.js.map +1 -1
  28. package/cache/core/types/DataProxy.d.ts +12 -0
  29. package/cache/core/types/DataProxy.js.map +1 -1
  30. package/cache/core/types/common.d.ts +4 -0
  31. package/cache/core/types/common.js.map +1 -1
  32. package/cache/inmemory/fragmentRegistry.js +19 -3
  33. package/cache/inmemory/fragmentRegistry.js.map +1 -1
  34. package/cache/inmemory/inMemoryCache.d.ts +9 -0
  35. package/cache/inmemory/inMemoryCache.js +8 -2
  36. package/cache/inmemory/inMemoryCache.js.map +1 -1
  37. package/cache/inmemory/readFromStore.js +7 -3
  38. package/cache/inmemory/readFromStore.js.map +1 -1
  39. package/cache/inmemory/types.d.ts +18 -0
  40. package/cache/inmemory/types.js.map +1 -1
  41. package/core/ApolloClient.d.ts +82 -0
  42. package/core/ApolloClient.js +4 -0
  43. package/core/ApolloClient.js.map +1 -1
  44. package/core/ObservableQuery.d.ts +2 -0
  45. package/core/ObservableQuery.js +15 -5
  46. package/core/ObservableQuery.js.map +1 -1
  47. package/core/QueryInfo.d.ts +1 -0
  48. package/core/QueryInfo.js +4 -0
  49. package/core/QueryInfo.js.map +1 -1
  50. package/core/QueryManager.d.ts +1 -1
  51. package/core/QueryManager.js +15 -10
  52. package/core/QueryManager.js.map +1 -1
  53. package/core/core.cjs +107 -16
  54. package/core/core.cjs.map +1 -1
  55. package/core/core.cjs.native.js +107 -16
  56. package/core/watchQueryOptions.d.ts +20 -1
  57. package/core/watchQueryOptions.js.map +1 -1
  58. package/dev/dev.cjs +1 -1
  59. package/dev/dev.cjs.map +1 -1
  60. package/dev/dev.cjs.native.js +1 -1
  61. package/link/core/ApolloLink.d.ts +15 -0
  62. package/link/core/ApolloLink.js +8 -4
  63. package/link/core/ApolloLink.js.map +1 -1
  64. package/link/core/core.cjs +8 -4
  65. package/link/core/core.cjs.map +1 -1
  66. package/link/core/core.cjs.native.js +8 -4
  67. package/link/persisted-queries/index.d.ts +11 -1
  68. package/link/persisted-queries/index.js +28 -3
  69. package/link/persisted-queries/index.js.map +1 -1
  70. package/link/persisted-queries/persisted-queries.cjs +26 -3
  71. package/link/persisted-queries/persisted-queries.cjs.map +1 -1
  72. package/link/persisted-queries/persisted-queries.cjs.native.js +26 -3
  73. package/link/remove-typename/remove-typename.cjs +18 -2
  74. package/link/remove-typename/remove-typename.cjs.map +1 -1
  75. package/link/remove-typename/remove-typename.cjs.native.js +18 -2
  76. package/link/remove-typename/removeTypenameFromVariables.d.ts +9 -1
  77. package/link/remove-typename/removeTypenameFromVariables.js +19 -3
  78. package/link/remove-typename/removeTypenameFromVariables.js.map +1 -1
  79. package/link/retry/retry.cjs +15 -74
  80. package/link/retry/retry.cjs.map +1 -1
  81. package/link/retry/retry.cjs.native.js +15 -74
  82. package/link/retry/retryLink.js +15 -93
  83. package/link/retry/retryLink.js.map +1 -1
  84. package/package.json +21 -21
  85. package/react/components/Mutation.d.ts +6 -0
  86. package/react/components/Mutation.js +6 -0
  87. package/react/components/Mutation.js.map +1 -1
  88. package/react/components/Query.d.ts +6 -0
  89. package/react/components/Query.js +6 -0
  90. package/react/components/Query.js.map +1 -1
  91. package/react/components/Subscription.d.ts +6 -0
  92. package/react/components/Subscription.js +6 -0
  93. package/react/components/Subscription.js.map +1 -1
  94. package/react/components/components.cjs.map +1 -1
  95. package/react/hoc/graphql.d.ts +5 -0
  96. package/react/hoc/graphql.js +5 -0
  97. package/react/hoc/graphql.js.map +1 -1
  98. package/react/hoc/hoc.cjs.map +1 -1
  99. package/react/hoc/mutation-hoc.d.ts +5 -0
  100. package/react/hoc/mutation-hoc.js +5 -0
  101. package/react/hoc/mutation-hoc.js.map +1 -1
  102. package/react/hoc/query-hoc.d.ts +5 -0
  103. package/react/hoc/query-hoc.js +5 -0
  104. package/react/hoc/query-hoc.js.map +1 -1
  105. package/react/hoc/subscription-hoc.d.ts +5 -0
  106. package/react/hoc/subscription-hoc.js +5 -0
  107. package/react/hoc/subscription-hoc.js.map +1 -1
  108. package/react/hoc/withApollo.d.ts +5 -0
  109. package/react/hoc/withApollo.js +5 -0
  110. package/react/hoc/withApollo.js.map +1 -1
  111. package/react/hooks/hooks.cjs +48 -257
  112. package/react/hooks/hooks.cjs.map +1 -1
  113. package/react/hooks/hooks.cjs.native.js +48 -257
  114. package/react/hooks/index.d.ts +2 -0
  115. package/react/hooks/index.js +1 -0
  116. package/react/hooks/index.js.map +1 -1
  117. package/react/hooks/useBackgroundQuery.d.ts +13 -10
  118. package/react/hooks/useBackgroundQuery.js +2 -4
  119. package/react/hooks/useBackgroundQuery.js.map +1 -1
  120. package/react/hooks/useLoadableQuery.d.ts +2 -2
  121. package/react/hooks/useLoadableQuery.js +2 -4
  122. package/react/hooks/useLoadableQuery.js.map +1 -1
  123. package/react/hooks/useQueryRefHandlers.d.ts +35 -0
  124. package/react/hooks/useQueryRefHandlers.js +48 -0
  125. package/react/hooks/useQueryRefHandlers.js.map +1 -0
  126. package/react/hooks/useReadQuery.d.ts +1 -1
  127. package/react/hooks/useReadQuery.js +8 -2
  128. package/react/hooks/useReadQuery.js.map +1 -1
  129. package/react/hooks/useSuspenseQuery.js +1 -1
  130. package/react/hooks/useSuspenseQuery.js.map +1 -1
  131. package/react/index.d.ts +2 -0
  132. package/react/index.js +1 -0
  133. package/react/index.js.map +1 -1
  134. package/react/{cache → internal/cache}/QueryReference.d.ts +13 -7
  135. package/react/{cache → internal/cache}/QueryReference.js +93 -57
  136. package/react/internal/cache/QueryReference.js.map +1 -0
  137. package/react/{cache → internal/cache}/SuspenseCache.d.ts +1 -1
  138. package/react/{cache → internal/cache}/SuspenseCache.js +1 -1
  139. package/react/internal/cache/SuspenseCache.js.map +1 -0
  140. package/react/{cache → internal/cache}/getSuspenseCache.d.ts +3 -3
  141. package/react/internal/cache/getSuspenseCache.js.map +1 -0
  142. package/react/internal/cache/types.js.map +1 -0
  143. package/react/internal/index.d.ts +6 -0
  144. package/react/internal/index.js +3 -0
  145. package/react/internal/index.js.map +1 -0
  146. package/react/internal/internal.cjs +283 -0
  147. package/react/internal/internal.cjs.map +1 -0
  148. package/react/internal/internal.cjs.native.js +283 -0
  149. package/react/internal/package.json +8 -0
  150. package/react/parser/index.js +6 -3
  151. package/react/parser/index.js.map +1 -1
  152. package/react/parser/parser.cjs +11 -3
  153. package/react/parser/parser.cjs.map +1 -1
  154. package/react/parser/parser.cjs.native.js +11 -3
  155. package/react/query-preloader/createQueryPreloader.d.ts +253 -0
  156. package/react/query-preloader/createQueryPreloader.js +29 -0
  157. package/react/query-preloader/createQueryPreloader.js.map +1 -0
  158. package/react/react.cjs +14 -2
  159. package/react/react.cjs.map +1 -1
  160. package/react/react.cjs.native.js +14 -2
  161. package/react/types/types.d.ts +7 -1
  162. package/react/types/types.js.map +1 -1
  163. package/testing/internal/ObservableStream.js +16 -8
  164. package/testing/internal/ObservableStream.js.map +1 -1
  165. package/testing/internal/index.d.ts +4 -0
  166. package/testing/internal/index.js +2 -0
  167. package/testing/internal/index.js.map +1 -1
  168. package/testing/internal/renderHelpers.d.ts +12 -0
  169. package/testing/internal/renderHelpers.js +22 -0
  170. package/testing/internal/renderHelpers.js.map +1 -0
  171. package/testing/internal/scenarios/index.d.ts +41 -0
  172. package/testing/internal/scenarios/index.js +48 -0
  173. package/testing/internal/scenarios/index.js.map +1 -0
  174. package/testing/matchers/index.js +2 -0
  175. package/testing/matchers/index.js.map +1 -1
  176. package/testing/matchers/toBeDisposed.d.ts +3 -0
  177. package/testing/matchers/toBeDisposed.js +26 -0
  178. package/testing/matchers/toBeDisposed.js.map +1 -0
  179. package/testing/matchers/toHaveSuspenseCacheEntryUsing.js +1 -1
  180. package/testing/matchers/toHaveSuspenseCacheEntryUsing.js.map +1 -1
  181. package/utilities/caching/caches.d.ts +34 -0
  182. package/utilities/caching/caches.js +64 -0
  183. package/utilities/caching/caches.js.map +1 -0
  184. package/utilities/caching/getMemoryInternals.d.ts +76 -0
  185. package/utilities/caching/getMemoryInternals.js +112 -0
  186. package/utilities/caching/getMemoryInternals.js.map +1 -0
  187. package/utilities/caching/index.d.ts +4 -0
  188. package/utilities/caching/index.js +3 -0
  189. package/utilities/caching/index.js.map +1 -0
  190. package/utilities/caching/sizes.d.ts +311 -0
  191. package/utilities/caching/sizes.js +27 -0
  192. package/utilities/caching/sizes.js.map +1 -0
  193. package/utilities/common/canUse.js +1 -1
  194. package/utilities/common/canUse.js.map +1 -1
  195. package/utilities/common/canonicalStringify.js +8 -2
  196. package/utilities/common/canonicalStringify.js.map +1 -1
  197. package/utilities/globals/globals.cjs +1 -1
  198. package/utilities/globals/globals.cjs.map +1 -1
  199. package/utilities/globals/globals.cjs.native.js +1 -1
  200. package/utilities/graphql/DocumentTransform.d.ts +14 -1
  201. package/utilities/graphql/DocumentTransform.js +9 -5
  202. package/utilities/graphql/DocumentTransform.js.map +1 -1
  203. package/utilities/graphql/print.js +6 -2
  204. package/utilities/graphql/print.js.map +1 -1
  205. package/utilities/index.d.ts +2 -0
  206. package/utilities/index.js +1 -0
  207. package/utilities/index.js.map +1 -1
  208. package/utilities/utilities.cjs +57 -9
  209. package/utilities/utilities.cjs.map +1 -1
  210. package/utilities/utilities.cjs.native.js +57 -9
  211. package/version.js +1 -1
  212. package/react/cache/QueryReference.js.map +0 -1
  213. package/react/cache/SuspenseCache.js.map +0 -1
  214. package/react/cache/getSuspenseCache.js.map +0 -1
  215. package/react/cache/index.d.ts +0 -3
  216. package/react/cache/index.js +0 -2
  217. package/react/cache/index.js.map +0 -1
  218. package/react/cache/types.js.map +0 -1
  219. /package/react/{cache → internal/cache}/getSuspenseCache.js +0 -0
  220. /package/react/{cache → internal/cache}/types.d.ts +0 -0
  221. /package/react/{cache → internal/cache}/types.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentTransform.js","sourceRoot":"","sources":["../../../src/utilities/graphql/DocumentTransform.ts"],"names":[],"mappings":"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","sourcesContent":["import { Trie } from \"@wry/trie\";\nimport { canUseWeakMap, canUseWeakSet } from \"../common/canUse.js\";\nimport { checkDocument } from \"./getFromAST.js\";\nimport { invariant } from \"../globals/index.js\";\nimport type { DocumentNode } from \"graphql\";\nimport { WeakCache } from \"@wry/caches\";\nimport { wrap } from \"optimism\";\n\nexport type DocumentTransformCacheKey = ReadonlyArray<unknown>;\n\ntype TransformFn = (document: DocumentNode) => DocumentNode;\n\ninterface DocumentTransformOptions {\n cache?: boolean;\n getCacheKey?: (\n document: DocumentNode\n ) => DocumentTransformCacheKey | undefined;\n}\n\nfunction identity(document: DocumentNode) {\n return document;\n}\n\nexport class DocumentTransform {\n private readonly transform: TransformFn;\n private cached: boolean;\n\n private readonly resultCache =\n canUseWeakSet ? new WeakSet<DocumentNode>() : new Set<DocumentNode>();\n\n // This default implementation of getCacheKey can be overridden by providing\n // options.getCacheKey to the DocumentTransform constructor. In general, a\n // getCacheKey function may either return an array of keys (often including\n // the document) to be used as a cache key, or undefined to indicate the\n // transform for this document should not be cached.\n private getCacheKey(\n document: DocumentNode\n ): DocumentTransformCacheKey | undefined {\n return [document];\n }\n\n static identity() {\n // No need to cache this transform since it just returns the document\n // unchanged. This should save a bit of memory that would otherwise be\n // needed to populate the `documentCache` of this transform.\n return new DocumentTransform(identity, { cache: false });\n }\n\n static split(\n predicate: (document: DocumentNode) => boolean,\n left: DocumentTransform,\n right: DocumentTransform = DocumentTransform.identity()\n ) {\n return new DocumentTransform(\n (document) => {\n const documentTransform = predicate(document) ? left : right;\n\n return documentTransform.transformDocument(document);\n },\n // Reasonably assume both `left` and `right` transforms handle their own caching\n { cache: false }\n );\n }\n\n constructor(\n transform: TransformFn,\n options: DocumentTransformOptions = Object.create(null)\n ) {\n this.transform = transform;\n\n if (options.getCacheKey) {\n // Override default `getCacheKey` function, which returns [document].\n this.getCacheKey = options.getCacheKey;\n }\n this.cached = options.cache !== false;\n\n this.resetCache();\n }\n\n /**\n * Resets the internal cache of this transform, if it has one.\n */\n resetCache() {\n if (this.cached) {\n const stableCacheKeys = new Trie<WeakKey>(canUseWeakMap);\n this.performWork = wrap(\n DocumentTransform.prototype.performWork.bind(this),\n {\n makeCacheKey: (document) => {\n const cacheKeys = this.getCacheKey(document);\n if (cacheKeys) {\n invariant(\n Array.isArray(cacheKeys),\n \"`getCacheKey` must return an array or undefined\"\n );\n return stableCacheKeys.lookupArray(cacheKeys);\n }\n },\n max: 1000 /** TODO: decide on a maximum size (will do all max sizes in a combined separate PR) */,\n cache: WeakCache<any, any>,\n }\n );\n }\n }\n\n private performWork(document: DocumentNode) {\n checkDocument(document);\n return this.transform(document);\n }\n\n transformDocument(document: DocumentNode) {\n // If a user passes an already transformed result back to this function,\n // immediately return it.\n if (this.resultCache.has(document)) {\n return document;\n }\n\n const transformedDocument = this.performWork(document);\n\n this.resultCache.add(transformedDocument);\n\n return transformedDocument;\n }\n\n concat(otherTransform: DocumentTransform) {\n return new DocumentTransform(\n (document) => {\n return otherTransform.transformDocument(\n this.transformDocument(document)\n );\n },\n // Reasonably assume both transforms handle their own caching\n { cache: false }\n );\n }\n}\n"]}
1
+ {"version":3,"file":"DocumentTransform.js","sourceRoot":"","sources":["../../../src/utilities/graphql/DocumentTransform.ts"],"names":[],"mappings":"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","sourcesContent":["import { Trie } from \"@wry/trie\";\nimport { canUseWeakMap, canUseWeakSet } from \"../common/canUse.js\";\nimport { checkDocument } from \"./getFromAST.js\";\nimport { invariant } from \"../globals/index.js\";\nimport type { DocumentNode } from \"graphql\";\nimport { WeakCache } from \"@wry/caches\";\nimport { wrap } from \"optimism\";\nimport { cacheSizes } from \"../caching/index.js\";\n\nexport type DocumentTransformCacheKey = ReadonlyArray<unknown>;\n\ntype TransformFn = (document: DocumentNode) => DocumentNode;\n\ninterface DocumentTransformOptions {\n cache?: boolean;\n getCacheKey?: (\n document: DocumentNode\n ) => DocumentTransformCacheKey | undefined;\n}\n\nfunction identity(document: DocumentNode) {\n return document;\n}\n\nexport class DocumentTransform {\n private readonly transform: TransformFn;\n private cached: boolean;\n\n private readonly resultCache =\n canUseWeakSet ? new WeakSet<DocumentNode>() : new Set<DocumentNode>();\n\n // This default implementation of getCacheKey can be overridden by providing\n // options.getCacheKey to the DocumentTransform constructor. In general, a\n // getCacheKey function may either return an array of keys (often including\n // the document) to be used as a cache key, or undefined to indicate the\n // transform for this document should not be cached.\n private getCacheKey(\n document: DocumentNode\n ): DocumentTransformCacheKey | undefined {\n return [document];\n }\n\n static identity() {\n // No need to cache this transform since it just returns the document\n // unchanged. This should save a bit of memory that would otherwise be\n // needed to populate the `documentCache` of this transform.\n return new DocumentTransform(identity, { cache: false });\n }\n\n static split(\n predicate: (document: DocumentNode) => boolean,\n left: DocumentTransform,\n right: DocumentTransform = DocumentTransform.identity()\n ) {\n return Object.assign(\n new DocumentTransform(\n (document) => {\n const documentTransform = predicate(document) ? left : right;\n\n return documentTransform.transformDocument(document);\n },\n // Reasonably assume both `left` and `right` transforms handle their own caching\n { cache: false }\n ),\n { left, right }\n );\n }\n\n constructor(\n transform: TransformFn,\n options: DocumentTransformOptions = Object.create(null)\n ) {\n this.transform = transform;\n\n if (options.getCacheKey) {\n // Override default `getCacheKey` function, which returns [document].\n this.getCacheKey = options.getCacheKey;\n }\n this.cached = options.cache !== false;\n\n this.resetCache();\n }\n\n /**\n * Resets the internal cache of this transform, if it has one.\n */\n resetCache() {\n if (this.cached) {\n const stableCacheKeys = new Trie<WeakKey>(canUseWeakMap);\n this.performWork = wrap(\n DocumentTransform.prototype.performWork.bind(this),\n {\n makeCacheKey: (document) => {\n const cacheKeys = this.getCacheKey(document);\n if (cacheKeys) {\n invariant(\n Array.isArray(cacheKeys),\n \"`getCacheKey` must return an array or undefined\"\n );\n return stableCacheKeys.lookupArray(cacheKeys);\n }\n },\n max: cacheSizes[\"documentTransform.cache\"],\n cache: WeakCache<any, any>,\n }\n );\n }\n }\n\n private performWork(document: DocumentNode) {\n checkDocument(document);\n return this.transform(document);\n }\n\n transformDocument(document: DocumentNode) {\n // If a user passes an already transformed result back to this function,\n // immediately return it.\n if (this.resultCache.has(document)) {\n return document;\n }\n\n const transformedDocument = this.performWork(document);\n\n this.resultCache.add(transformedDocument);\n\n return transformedDocument;\n }\n\n concat(otherTransform: DocumentTransform): DocumentTransform {\n return Object.assign(\n new DocumentTransform(\n (document) => {\n return otherTransform.transformDocument(\n this.transformDocument(document)\n );\n },\n // Reasonably assume both transforms handle their own caching\n { cache: false }\n ),\n {\n left: this,\n right: otherTransform,\n }\n );\n }\n\n /**\n * @internal\n * Used to iterate through all transforms that are concatenations or `split` links.\n */\n readonly left?: DocumentTransform;\n /**\n * @internal\n * Used to iterate through all transforms that are concatenations or `split` links.\n */\n readonly right?: DocumentTransform;\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import { print as origPrint } from "graphql";
2
- import { WeakCache } from "@wry/caches";
2
+ import { AutoCleanedWeakCache, cacheSizes, } from "../caching/index.js";
3
+ import { registerGlobalCache } from "../caching/getMemoryInternals.js";
3
4
  var printCache;
4
5
  export var print = Object.assign(function (ast) {
5
6
  var result = printCache.get(ast);
@@ -10,8 +11,11 @@ export var print = Object.assign(function (ast) {
10
11
  return result;
11
12
  }, {
12
13
  reset: function () {
13
- printCache = new WeakCache( /** TODO: decide on a maximum size (will do all max sizes in a combined separate PR) */);
14
+ printCache = new AutoCleanedWeakCache(cacheSizes.print || 2000 /* defaultCacheSizes.print */);
14
15
  },
15
16
  });
16
17
  print.reset();
18
+ if (globalThis.__DEV__ !== false) {
19
+ registerGlobalCache("print", function () { return (printCache ? printCache.size : 0); });
20
+ }
17
21
  //# sourceMappingURL=print.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"print.js","sourceRoot":"","sources":["../../../src/utilities/graphql/print.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,IAAI,UAAuC,CAAC;AAC5C,MAAM,CAAC,IAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAChC,UAAC,GAAY;IACX,IAAI,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEjC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QACxB,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,EACD;IACE,KAAK;QACH,UAAU,GAAG,IAAI,SAAS,EAGxB,uFAAuF,CAAC,CAAC;IAC7F,CAAC;CACF,CACF,CAAC;AAEF,KAAK,CAAC,KAAK,EAAE,CAAC","sourcesContent":["import type { ASTNode } from \"graphql\";\nimport { print as origPrint } from \"graphql\";\nimport { WeakCache } from \"@wry/caches\";\n\nlet printCache!: WeakCache<ASTNode, string>;\nexport const print = Object.assign(\n (ast: ASTNode) => {\n let result = printCache.get(ast);\n\n if (!result) {\n result = origPrint(ast);\n printCache.set(ast, result);\n }\n return result;\n },\n {\n reset() {\n printCache = new WeakCache<\n ASTNode,\n string\n >(/** TODO: decide on a maximum size (will do all max sizes in a combined separate PR) */);\n },\n }\n);\n\nprint.reset();\n"]}
1
+ {"version":3,"file":"print.js","sourceRoot":"","sources":["../../../src/utilities/graphql/print.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EACL,oBAAoB,EACpB,UAAU,GAEX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,IAAI,UAAkD,CAAC;AACvD,MAAM,CAAC,IAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAChC,UAAC,GAAY;IACX,IAAI,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEjC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QACxB,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,EACD;IACE,KAAK;QACH,UAAU,GAAG,IAAI,oBAAoB,CACnC,UAAU,CAAC,KAAK,sCAA2B,CAC5C,CAAC;IACJ,CAAC;CACF,CACF,CAAC;AACF,KAAK,CAAC,KAAK,EAAE,CAAC;AAEd,IAAI,OAAO,EAAE,CAAC;IACZ,mBAAmB,CAAC,OAAO,EAAE,cAAM,OAAA,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAlC,CAAkC,CAAC,CAAC;AACzE,CAAC","sourcesContent":["import type { ASTNode } from \"graphql\";\nimport { print as origPrint } from \"graphql\";\nimport {\n AutoCleanedWeakCache,\n cacheSizes,\n defaultCacheSizes,\n} from \"../caching/index.js\";\nimport { registerGlobalCache } from \"../caching/getMemoryInternals.js\";\n\nlet printCache!: AutoCleanedWeakCache<ASTNode, string>;\nexport const print = Object.assign(\n (ast: ASTNode) => {\n let result = printCache.get(ast);\n\n if (!result) {\n result = origPrint(ast);\n printCache.set(ast, result);\n }\n return result;\n },\n {\n reset() {\n printCache = new AutoCleanedWeakCache<ASTNode, string>(\n cacheSizes.print || defaultCacheSizes.print\n );\n },\n }\n);\nprint.reset();\n\nif (__DEV__) {\n registerGlobalCache(\"print\", () => (printCache ? printCache.size : 0));\n}\n"]}
@@ -40,4 +40,6 @@ export * from "./types/IsStrictlyAny.js";
40
40
  export type { DeepOmit } from "./types/DeepOmit.js";
41
41
  export type { DeepPartial } from "./types/DeepPartial.js";
42
42
  export type { OnlyRequiredProperties } from "./types/OnlyRequiredProperties.js";
43
+ export { AutoCleanedStrongCache, AutoCleanedWeakCache, cacheSizes, defaultCacheSizes, } from "./caching/index.js";
44
+ export type { CacheSizes } from "./caching/index.js";
43
45
  //# sourceMappingURL=index.d.ts.map
@@ -30,4 +30,5 @@ export { canonicalStringify } from "./common/canonicalStringify.js";
30
30
  export { omitDeep } from "./common/omitDeep.js";
31
31
  export { stripTypename } from "./common/stripTypename.js";
32
32
  export * from "./types/IsStrictlyAny.js";
33
+ export { AutoCleanedStrongCache, AutoCleanedWeakCache, cacheSizes, } from "./caching/index.js";
33
34
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utilities/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAMhD,OAAO,EACL,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAGnE,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAU3C,OAAO,EACL,aAAa,EACb,cAAc,EACd,WAAW,EACX,OAAO,EACP,gBAAgB,EAChB,2BAA2B,EAC3B,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,eAAe,EACf,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAajC,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,4BAA4B,EAC5B,qCAAqC,EACrC,2BAA2B,EAC3B,gCAAgC,EAChC,4BAA4B,GAC7B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAMlC,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAGzD,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAElC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,cAAc,0BAA0B,CAAC","sourcesContent":["export { DEV, maybe } from \"./globals/index.js\";\n\nexport type {\n DirectiveInfo,\n InclusionDirectives,\n} from \"./graphql/directives.js\";\nexport {\n shouldInclude,\n hasDirectives,\n hasAnyDirectives,\n hasAllDirectives,\n hasClientExports,\n getDirectiveNames,\n getInclusionDirectives,\n} from \"./graphql/directives.js\";\n\nexport type { DocumentTransformCacheKey } from \"./graphql/DocumentTransform.js\";\nexport { DocumentTransform } from \"./graphql/DocumentTransform.js\";\n\nexport type { FragmentMap, FragmentMapFunction } from \"./graphql/fragments.js\";\nexport {\n createFragmentMap,\n getFragmentQueryDocument,\n getFragmentFromSelection,\n} from \"./graphql/fragments.js\";\n\nexport {\n checkDocument,\n getOperationDefinition,\n getOperationName,\n getFragmentDefinitions,\n getQueryDefinition,\n getFragmentDefinition,\n getMainDefinition,\n getDefaultValues,\n} from \"./graphql/getFromAST.js\";\n\nexport { print } from \"./graphql/print.js\";\n\nexport type {\n StoreObject,\n AsStoreObject,\n Reference,\n StoreValue,\n Directives,\n VariableValue,\n} from \"./graphql/storeUtils.js\";\nexport {\n makeReference,\n isDocumentNode,\n isReference,\n isField,\n isInlineFragment,\n valueToObjectRepresentation,\n storeKeyNameFromField,\n argumentsObjectFromField,\n resultKeyNameFromField,\n getStoreKeyName,\n getTypenameFromResult,\n} from \"./graphql/storeUtils.js\";\n\nexport type {\n RemoveNodeConfig,\n GetNodeConfig,\n RemoveDirectiveConfig,\n GetDirectiveConfig,\n RemoveArgumentsConfig,\n GetFragmentSpreadConfig,\n RemoveFragmentSpreadConfig,\n RemoveFragmentDefinitionConfig,\n RemoveVariableDefinitionConfig,\n} from \"./graphql/transform.js\";\nexport {\n addTypenameToDocument,\n buildQueryFromSelectionSet,\n removeDirectivesFromDocument,\n removeConnectionDirectiveFromDocument,\n removeArgumentsFromDocument,\n removeFragmentSpreadFromDocument,\n removeClientSetsFromDocument,\n} from \"./graphql/transform.js\";\n\nexport {\n isMutationOperation,\n isQueryOperation,\n isSubscriptionOperation,\n} from \"./graphql/operations.js\";\n\nexport {\n concatPagination,\n offsetLimitPagination,\n relayStylePagination,\n} from \"./policies/pagination.js\";\n\nexport type {\n Observer,\n ObservableSubscription,\n} from \"./observables/Observable.js\";\nexport { Observable } from \"./observables/Observable.js\";\n\nexport type { PromiseWithState } from \"./promises/decoration.js\";\nexport {\n isStatefulPromise,\n createFulfilledPromise,\n createRejectedPromise,\n wrapPromiseWithState,\n} from \"./promises/decoration.js\";\n\nexport * from \"./common/mergeDeep.js\";\nexport * from \"./common/cloneDeep.js\";\nexport * from \"./common/maybeDeepFreeze.js\";\nexport * from \"./observables/iteration.js\";\nexport * from \"./observables/asyncMap.js\";\nexport * from \"./observables/Concast.js\";\nexport * from \"./observables/subclassing.js\";\nexport * from \"./common/arrays.js\";\nexport * from \"./common/objects.js\";\nexport * from \"./common/errorHandling.js\";\nexport * from \"./common/canUse.js\";\nexport * from \"./common/compact.js\";\nexport * from \"./common/makeUniqueId.js\";\nexport * from \"./common/stringifyForDisplay.js\";\nexport * from \"./common/mergeOptions.js\";\nexport * from \"./common/incrementalResult.js\";\n\nexport { canonicalStringify } from \"./common/canonicalStringify.js\";\nexport { omitDeep } from \"./common/omitDeep.js\";\nexport { stripTypename } from \"./common/stripTypename.js\";\n\nexport * from \"./types/IsStrictlyAny.js\";\nexport type { DeepOmit } from \"./types/DeepOmit.js\";\nexport type { DeepPartial } from \"./types/DeepPartial.js\";\nexport type { OnlyRequiredProperties } from \"./types/OnlyRequiredProperties.js\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utilities/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAMhD,OAAO,EACL,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAGnE,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAU3C,OAAO,EACL,aAAa,EACb,cAAc,EACd,WAAW,EACX,OAAO,EACP,gBAAgB,EAChB,2BAA2B,EAC3B,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,eAAe,EACf,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAajC,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,4BAA4B,EAC5B,qCAAqC,EACrC,2BAA2B,EAC3B,gCAAgC,EAChC,4BAA4B,GAC7B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAMlC,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAGzD,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAElC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,cAAc,0BAA0B,CAAC;AAKzC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,UAAU,GAEX,MAAM,oBAAoB,CAAC","sourcesContent":["export { DEV, maybe } from \"./globals/index.js\";\n\nexport type {\n DirectiveInfo,\n InclusionDirectives,\n} from \"./graphql/directives.js\";\nexport {\n shouldInclude,\n hasDirectives,\n hasAnyDirectives,\n hasAllDirectives,\n hasClientExports,\n getDirectiveNames,\n getInclusionDirectives,\n} from \"./graphql/directives.js\";\n\nexport type { DocumentTransformCacheKey } from \"./graphql/DocumentTransform.js\";\nexport { DocumentTransform } from \"./graphql/DocumentTransform.js\";\n\nexport type { FragmentMap, FragmentMapFunction } from \"./graphql/fragments.js\";\nexport {\n createFragmentMap,\n getFragmentQueryDocument,\n getFragmentFromSelection,\n} from \"./graphql/fragments.js\";\n\nexport {\n checkDocument,\n getOperationDefinition,\n getOperationName,\n getFragmentDefinitions,\n getQueryDefinition,\n getFragmentDefinition,\n getMainDefinition,\n getDefaultValues,\n} from \"./graphql/getFromAST.js\";\n\nexport { print } from \"./graphql/print.js\";\n\nexport type {\n StoreObject,\n AsStoreObject,\n Reference,\n StoreValue,\n Directives,\n VariableValue,\n} from \"./graphql/storeUtils.js\";\nexport {\n makeReference,\n isDocumentNode,\n isReference,\n isField,\n isInlineFragment,\n valueToObjectRepresentation,\n storeKeyNameFromField,\n argumentsObjectFromField,\n resultKeyNameFromField,\n getStoreKeyName,\n getTypenameFromResult,\n} from \"./graphql/storeUtils.js\";\n\nexport type {\n RemoveNodeConfig,\n GetNodeConfig,\n RemoveDirectiveConfig,\n GetDirectiveConfig,\n RemoveArgumentsConfig,\n GetFragmentSpreadConfig,\n RemoveFragmentSpreadConfig,\n RemoveFragmentDefinitionConfig,\n RemoveVariableDefinitionConfig,\n} from \"./graphql/transform.js\";\nexport {\n addTypenameToDocument,\n buildQueryFromSelectionSet,\n removeDirectivesFromDocument,\n removeConnectionDirectiveFromDocument,\n removeArgumentsFromDocument,\n removeFragmentSpreadFromDocument,\n removeClientSetsFromDocument,\n} from \"./graphql/transform.js\";\n\nexport {\n isMutationOperation,\n isQueryOperation,\n isSubscriptionOperation,\n} from \"./graphql/operations.js\";\n\nexport {\n concatPagination,\n offsetLimitPagination,\n relayStylePagination,\n} from \"./policies/pagination.js\";\n\nexport type {\n Observer,\n ObservableSubscription,\n} from \"./observables/Observable.js\";\nexport { Observable } from \"./observables/Observable.js\";\n\nexport type { PromiseWithState } from \"./promises/decoration.js\";\nexport {\n isStatefulPromise,\n createFulfilledPromise,\n createRejectedPromise,\n wrapPromiseWithState,\n} from \"./promises/decoration.js\";\n\nexport * from \"./common/mergeDeep.js\";\nexport * from \"./common/cloneDeep.js\";\nexport * from \"./common/maybeDeepFreeze.js\";\nexport * from \"./observables/iteration.js\";\nexport * from \"./observables/asyncMap.js\";\nexport * from \"./observables/Concast.js\";\nexport * from \"./observables/subclassing.js\";\nexport * from \"./common/arrays.js\";\nexport * from \"./common/objects.js\";\nexport * from \"./common/errorHandling.js\";\nexport * from \"./common/canUse.js\";\nexport * from \"./common/compact.js\";\nexport * from \"./common/makeUniqueId.js\";\nexport * from \"./common/stringifyForDisplay.js\";\nexport * from \"./common/mergeOptions.js\";\nexport * from \"./common/incrementalResult.js\";\n\nexport { canonicalStringify } from \"./common/canonicalStringify.js\";\nexport { omitDeep } from \"./common/omitDeep.js\";\nexport { stripTypename } from \"./common/stripTypename.js\";\n\nexport * from \"./types/IsStrictlyAny.js\";\nexport type { DeepOmit } from \"./types/DeepOmit.js\";\nexport type { DeepPartial } from \"./types/DeepPartial.js\";\nexport type { OnlyRequiredProperties } from \"./types/OnlyRequiredProperties.js\";\n\nexport {\n AutoCleanedStrongCache,\n AutoCleanedWeakCache,\n cacheSizes,\n defaultCacheSizes,\n} from \"./caching/index.js\";\nexport type { CacheSizes } from \"./caching/index.js\";\n"]}
@@ -85,7 +85,7 @@ function getInclusionDirectives(directives) {
85
85
  }
86
86
 
87
87
  var canUseWeakMap = typeof WeakMap === "function" &&
88
- globals.maybe(function () { return navigator.product; }) !== "ReactNative";
88
+ !globals.maybe(function () { return navigator.product == "ReactNative" && !global.HermesInternal; });
89
89
  var canUseWeakSet = typeof WeakSet === "function";
90
90
  var canUseSymbol = typeof Symbol === "function" && typeof Symbol.for === "function";
91
91
  var canUseAsyncIteratorSymbol = canUseSymbol && Symbol.asyncIterator;
@@ -169,14 +169,53 @@ function getFragmentFromSelection(selection, fragmentMap) {
169
169
  }
170
170
  }
171
171
 
172
+ var scheduledCleanup = new WeakSet();
173
+ function schedule(cache) {
174
+ if (!scheduledCleanup.has(cache)) {
175
+ scheduledCleanup.add(cache);
176
+ setTimeout(function () {
177
+ cache.clean();
178
+ scheduledCleanup.delete(cache);
179
+ }, 100);
180
+ }
181
+ }
182
+ var AutoCleanedWeakCache = function (max, dispose) {
183
+ var cache = new caches.WeakCache(max, dispose);
184
+ cache.set = function (key, value) {
185
+ schedule(this);
186
+ return caches.WeakCache.prototype.set.call(this, key, value);
187
+ };
188
+ return cache;
189
+ };
190
+ var AutoCleanedStrongCache = function (max, dispose) {
191
+ var cache = new caches.StrongCache(max, dispose);
192
+ cache.set = function (key, value) {
193
+ schedule(this);
194
+ return caches.StrongCache.prototype.set.call(this, key, value);
195
+ };
196
+ return cache;
197
+ };
198
+
199
+ var cacheSizeSymbol = Symbol.for("apollo.cacheSize");
200
+ var cacheSizes = tslib.__assign({}, globals.global[cacheSizeSymbol]);
201
+
202
+ var globalCaches = {};
203
+ function registerGlobalCache(name, getSize) {
204
+ globalCaches[name] = getSize;
205
+ }
206
+
172
207
  var canonicalStringify = Object.assign(function canonicalStringify(value) {
173
208
  return JSON.stringify(value, stableObjectReplacer);
174
209
  }, {
175
210
  reset: function () {
176
- sortingMap.clear();
211
+ sortingMap = new AutoCleanedStrongCache(cacheSizes.canonicalStringify || 1000 );
177
212
  },
178
213
  });
179
- var sortingMap = new Map();
214
+ if (globalThis.__DEV__ !== false) {
215
+ registerGlobalCache("canonicalStringify", function () { return sortingMap.size; });
216
+ }
217
+ var sortingMap;
218
+ canonicalStringify.reset();
180
219
  function stableObjectReplacer(key, value) {
181
220
  if (value && typeof value === "object") {
182
221
  var proto = Object.getPrototypeOf(value);
@@ -509,11 +548,11 @@ var DocumentTransform = (function () {
509
548
  };
510
549
  DocumentTransform.split = function (predicate, left, right) {
511
550
  if (right === void 0) { right = DocumentTransform.identity(); }
512
- return new DocumentTransform(function (document) {
551
+ return Object.assign(new DocumentTransform(function (document) {
513
552
  var documentTransform = predicate(document) ? left : right;
514
553
  return documentTransform.transformDocument(document);
515
554
  },
516
- { cache: false });
555
+ { cache: false }), { left: left, right: right });
517
556
  };
518
557
  DocumentTransform.prototype.resetCache = function () {
519
558
  var _this = this;
@@ -527,7 +566,7 @@ var DocumentTransform = (function () {
527
566
  return stableCacheKeys_1.lookupArray(cacheKeys);
528
567
  }
529
568
  },
530
- max: 1000 ,
569
+ max: cacheSizes["documentTransform.cache"],
531
570
  cache: (caches.WeakCache),
532
571
  });
533
572
  }
@@ -546,10 +585,13 @@ var DocumentTransform = (function () {
546
585
  };
547
586
  DocumentTransform.prototype.concat = function (otherTransform) {
548
587
  var _this = this;
549
- return new DocumentTransform(function (document) {
588
+ return Object.assign(new DocumentTransform(function (document) {
550
589
  return otherTransform.transformDocument(_this.transformDocument(document));
551
590
  },
552
- { cache: false });
591
+ { cache: false }), {
592
+ left: this,
593
+ right: otherTransform,
594
+ });
553
595
  };
554
596
  return DocumentTransform;
555
597
  }());
@@ -564,10 +606,13 @@ var print = Object.assign(function (ast) {
564
606
  return result;
565
607
  }, {
566
608
  reset: function () {
567
- printCache = new caches.WeakCache( );
609
+ printCache = new AutoCleanedWeakCache(cacheSizes.print || 2000 );
568
610
  },
569
611
  });
570
612
  print.reset();
613
+ if (globalThis.__DEV__ !== false) {
614
+ registerGlobalCache("print", function () { return (printCache ? printCache.size : 0); });
615
+ }
571
616
 
572
617
  var isArray = Array.isArray;
573
618
  function isNonEmptyArray(value) {
@@ -1598,6 +1643,8 @@ function stripTypename(value) {
1598
1643
  exports.DEV = globals.DEV;
1599
1644
  exports.maybe = globals.maybe;
1600
1645
  exports.Observable = zenObservableTs.Observable;
1646
+ exports.AutoCleanedStrongCache = AutoCleanedStrongCache;
1647
+ exports.AutoCleanedWeakCache = AutoCleanedWeakCache;
1601
1648
  exports.Concast = Concast;
1602
1649
  exports.DeepMerger = DeepMerger;
1603
1650
  exports.DocumentTransform = DocumentTransform;
@@ -1605,6 +1652,7 @@ exports.addTypenameToDocument = addTypenameToDocument;
1605
1652
  exports.argumentsObjectFromField = argumentsObjectFromField;
1606
1653
  exports.asyncMap = asyncMap;
1607
1654
  exports.buildQueryFromSelectionSet = buildQueryFromSelectionSet;
1655
+ exports.cacheSizes = cacheSizes;
1608
1656
  exports.canUseAsyncIteratorSymbol = canUseAsyncIteratorSymbol;
1609
1657
  exports.canUseDOM = canUseDOM;
1610
1658
  exports.canUseLayoutEffect = canUseLayoutEffect;