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

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 (154) hide show
  1. package/.changeset/dirty-tigers-matter.md +13 -0
  2. package/.changeset/mighty-coats-check.md +47 -0
  3. package/.changeset/pre.json +9 -1
  4. package/.changeset/rare-snakes-melt.md +24 -0
  5. package/.changeset/swift-zoos-collect.md +19 -0
  6. package/.changeset/thick-tips-cry.md +9 -0
  7. package/.changeset/tough-timers-begin.md +8 -0
  8. package/.changeset/unlucky-rats-decide.md +5 -0
  9. package/.changeset/wet-forks-rhyme.md +5 -0
  10. package/CHANGELOG.md +118 -4
  11. package/apollo-client.cjs +329 -82
  12. package/apollo-client.cjs.map +1 -1
  13. package/apollo-client.min.cjs +1 -1
  14. package/cache/cache.cjs +78 -6
  15. package/cache/cache.cjs.map +1 -1
  16. package/cache/cache.cjs.native.js +78 -6
  17. package/cache/core/cache.d.ts +9 -0
  18. package/cache/core/cache.js +11 -2
  19. package/cache/core/cache.js.map +1 -1
  20. package/cache/core/types/Cache.d.ts +7 -0
  21. package/cache/core/types/Cache.js.map +1 -1
  22. package/cache/core/types/DataProxy.d.ts +12 -0
  23. package/cache/core/types/DataProxy.js.map +1 -1
  24. package/cache/core/types/common.d.ts +4 -0
  25. package/cache/core/types/common.js.map +1 -1
  26. package/cache/inmemory/fragmentRegistry.js +19 -3
  27. package/cache/inmemory/fragmentRegistry.js.map +1 -1
  28. package/cache/inmemory/inMemoryCache.d.ts +9 -0
  29. package/cache/inmemory/inMemoryCache.js +8 -2
  30. package/cache/inmemory/inMemoryCache.js.map +1 -1
  31. package/cache/inmemory/readFromStore.js +7 -3
  32. package/cache/inmemory/readFromStore.js.map +1 -1
  33. package/cache/inmemory/types.d.ts +18 -0
  34. package/cache/inmemory/types.js.map +1 -1
  35. package/core/ApolloClient.d.ts +9 -0
  36. package/core/ApolloClient.js +4 -0
  37. package/core/ApolloClient.js.map +1 -1
  38. package/core/ObservableQuery.d.ts +2 -0
  39. package/core/ObservableQuery.js +7 -1
  40. package/core/ObservableQuery.js.map +1 -1
  41. package/core/QueryInfo.d.ts +1 -0
  42. package/core/QueryInfo.js +4 -0
  43. package/core/QueryInfo.js.map +1 -1
  44. package/core/QueryManager.d.ts +1 -1
  45. package/core/QueryManager.js +15 -10
  46. package/core/QueryManager.js.map +1 -1
  47. package/core/core.cjs +99 -12
  48. package/core/core.cjs.map +1 -1
  49. package/core/core.cjs.native.js +99 -12
  50. package/core/watchQueryOptions.d.ts +20 -1
  51. package/core/watchQueryOptions.js.map +1 -1
  52. package/dev/dev.cjs +1 -1
  53. package/dev/dev.cjs.map +1 -1
  54. package/dev/dev.cjs.native.js +1 -1
  55. package/link/core/ApolloLink.d.ts +15 -0
  56. package/link/core/ApolloLink.js +8 -4
  57. package/link/core/ApolloLink.js.map +1 -1
  58. package/link/core/core.cjs +8 -4
  59. package/link/core/core.cjs.map +1 -1
  60. package/link/core/core.cjs.native.js +8 -4
  61. package/link/persisted-queries/index.d.ts +11 -1
  62. package/link/persisted-queries/index.js +28 -3
  63. package/link/persisted-queries/index.js.map +1 -1
  64. package/link/persisted-queries/persisted-queries.cjs +26 -3
  65. package/link/persisted-queries/persisted-queries.cjs.map +1 -1
  66. package/link/persisted-queries/persisted-queries.cjs.native.js +26 -3
  67. package/link/remove-typename/remove-typename.cjs +18 -2
  68. package/link/remove-typename/remove-typename.cjs.map +1 -1
  69. package/link/remove-typename/remove-typename.cjs.native.js +18 -2
  70. package/link/remove-typename/removeTypenameFromVariables.d.ts +9 -1
  71. package/link/remove-typename/removeTypenameFromVariables.js +19 -3
  72. package/link/remove-typename/removeTypenameFromVariables.js.map +1 -1
  73. package/package.json +21 -21
  74. package/react/cache/QueryReference.d.ts +11 -5
  75. package/react/cache/QueryReference.js +91 -55
  76. package/react/cache/QueryReference.js.map +1 -1
  77. package/react/hooks/hooks.cjs +112 -52
  78. package/react/hooks/hooks.cjs.map +1 -1
  79. package/react/hooks/hooks.cjs.native.js +112 -52
  80. package/react/hooks/index.d.ts +2 -0
  81. package/react/hooks/index.js +1 -0
  82. package/react/hooks/index.js.map +1 -1
  83. package/react/hooks/useBackgroundQuery.d.ts +12 -9
  84. package/react/hooks/useBackgroundQuery.js +1 -1
  85. package/react/hooks/useBackgroundQuery.js.map +1 -1
  86. package/react/hooks/useLoadableQuery.d.ts +1 -1
  87. package/react/hooks/useLoadableQuery.js +1 -1
  88. package/react/hooks/useLoadableQuery.js.map +1 -1
  89. package/react/hooks/useQueryRefHandlers.d.ts +35 -0
  90. package/react/hooks/useQueryRefHandlers.js +48 -0
  91. package/react/hooks/useQueryRefHandlers.js.map +1 -0
  92. package/react/hooks/useReadQuery.js +8 -2
  93. package/react/hooks/useReadQuery.js.map +1 -1
  94. package/react/index.d.ts +2 -0
  95. package/react/index.js +1 -0
  96. package/react/index.js.map +1 -1
  97. package/react/parser/index.js +6 -3
  98. package/react/parser/index.js.map +1 -1
  99. package/react/parser/parser.cjs +11 -3
  100. package/react/parser/parser.cjs.map +1 -1
  101. package/react/parser/parser.cjs.native.js +11 -3
  102. package/react/query-preloader/createQueryPreloader.d.ts +253 -0
  103. package/react/query-preloader/createQueryPreloader.js +29 -0
  104. package/react/query-preloader/createQueryPreloader.js.map +1 -0
  105. package/react/react.cjs +248 -1
  106. package/react/react.cjs.map +1 -1
  107. package/react/react.cjs.native.js +248 -1
  108. package/react/types/types.d.ts +6 -0
  109. package/react/types/types.js.map +1 -1
  110. package/testing/internal/index.d.ts +4 -0
  111. package/testing/internal/index.js +2 -0
  112. package/testing/internal/index.js.map +1 -1
  113. package/testing/internal/renderHelpers.d.ts +12 -0
  114. package/testing/internal/renderHelpers.js +22 -0
  115. package/testing/internal/renderHelpers.js.map +1 -0
  116. package/testing/internal/scenarios/index.d.ts +41 -0
  117. package/testing/internal/scenarios/index.js +46 -0
  118. package/testing/internal/scenarios/index.js.map +1 -0
  119. package/testing/matchers/index.js +2 -0
  120. package/testing/matchers/index.js.map +1 -1
  121. package/testing/matchers/toBeDisposed.d.ts +3 -0
  122. package/testing/matchers/toBeDisposed.js +26 -0
  123. package/testing/matchers/toBeDisposed.js.map +1 -0
  124. package/utilities/caching/caches.d.ts +34 -0
  125. package/utilities/caching/caches.js +64 -0
  126. package/utilities/caching/caches.js.map +1 -0
  127. package/utilities/caching/getMemoryInternals.d.ts +76 -0
  128. package/utilities/caching/getMemoryInternals.js +112 -0
  129. package/utilities/caching/getMemoryInternals.js.map +1 -0
  130. package/utilities/caching/index.d.ts +4 -0
  131. package/utilities/caching/index.js +3 -0
  132. package/utilities/caching/index.js.map +1 -0
  133. package/utilities/caching/sizes.d.ts +261 -0
  134. package/utilities/caching/sizes.js +27 -0
  135. package/utilities/caching/sizes.js.map +1 -0
  136. package/utilities/common/canUse.js +1 -1
  137. package/utilities/common/canUse.js.map +1 -1
  138. package/utilities/common/canonicalStringify.js +8 -2
  139. package/utilities/common/canonicalStringify.js.map +1 -1
  140. package/utilities/globals/globals.cjs +1 -1
  141. package/utilities/globals/globals.cjs.map +1 -1
  142. package/utilities/globals/globals.cjs.native.js +1 -1
  143. package/utilities/graphql/DocumentTransform.d.ts +14 -1
  144. package/utilities/graphql/DocumentTransform.js +9 -5
  145. package/utilities/graphql/DocumentTransform.js.map +1 -1
  146. package/utilities/graphql/print.js +6 -2
  147. package/utilities/graphql/print.js.map +1 -1
  148. package/utilities/index.d.ts +2 -0
  149. package/utilities/index.js +1 -0
  150. package/utilities/index.js.map +1 -1
  151. package/utilities/utilities.cjs +57 -9
  152. package/utilities/utilities.cjs.map +1 -1
  153. package/utilities/utilities.cjs.native.js +57 -9
  154. package/version.js +1 -1
@@ -6,11 +6,12 @@ var optimism = require('optimism');
6
6
  var graphql = require('graphql');
7
7
  var core = require('../core');
8
8
  var utilities = require('../../utilities');
9
+ var caches = require('@wry/caches');
9
10
 
10
11
  var KEEP = "__KEEP";
11
12
  function removeTypenameFromVariables(options) {
12
13
  if (options === void 0) { options = Object.create(null); }
13
- return new core.ApolloLink(function (operation, forward) {
14
+ return Object.assign(new core.ApolloLink(function (operation, forward) {
14
15
  var except = options.except;
15
16
  var query = operation.query, variables = operation.variables;
16
17
  if (variables) {
@@ -20,7 +21,18 @@ function removeTypenameFromVariables(options) {
20
21
  : utilities.stripTypename(variables);
21
22
  }
22
23
  return forward(operation);
23
- });
24
+ }), globalThis.__DEV__ !== false ?
25
+ {
26
+ getMemoryInternals: function () {
27
+ var _a;
28
+ return {
29
+ removeTypenameFromVariables: {
30
+ getVariableDefinitions: (_a = getVariableDefinitions === null || getVariableDefinitions === void 0 ? void 0 : getVariableDefinitions.size) !== null && _a !== void 0 ? _a : 0,
31
+ },
32
+ };
33
+ },
34
+ }
35
+ : {});
24
36
  }
25
37
  function maybeStripTypenameUsingConfig(query, variables, config) {
26
38
  var variableDefinitions = getVariableDefinitions(query);
@@ -67,6 +79,10 @@ var getVariableDefinitions = optimism.wrap(function (document) {
67
79
  },
68
80
  });
69
81
  return definitions;
82
+ }, {
83
+ max: utilities.cacheSizes["removeTypenameFromVariables.getVariableDefinitions"] ||
84
+ 2000 ,
85
+ cache: caches.WeakCache,
70
86
  });
71
87
  function unwrapType(node) {
72
88
  switch (node.kind) {
@@ -1 +1 @@
1
- {"version":3,"file":"remove-typename.cjs","sources":["removeTypenameFromVariables.js"],"sourcesContent":["import { wrap } from \"optimism\";\nimport { Kind, visit } from \"graphql\";\nimport { ApolloLink } from \"../core/index.js\";\nimport { stripTypename, isPlainObject } from \"../../utilities/index.js\";\nexport var KEEP = \"__KEEP\";\nexport function removeTypenameFromVariables(options) {\n if (options === void 0) { options = Object.create(null); }\n return new ApolloLink(function (operation, forward) {\n var except = options.except;\n var query = operation.query, variables = operation.variables;\n if (variables) {\n operation.variables =\n except ?\n maybeStripTypenameUsingConfig(query, variables, except)\n : stripTypename(variables);\n }\n return forward(operation);\n });\n}\nfunction maybeStripTypenameUsingConfig(query, variables, config) {\n var variableDefinitions = getVariableDefinitions(query);\n return Object.fromEntries(Object.entries(variables).map(function (keyVal) {\n var key = keyVal[0], value = keyVal[1];\n var typename = variableDefinitions[key];\n var typenameConfig = config[typename];\n keyVal[1] =\n typenameConfig ?\n maybeStripTypename(value, typenameConfig)\n : stripTypename(value);\n return keyVal;\n }));\n}\nfunction maybeStripTypename(value, config) {\n if (config === KEEP) {\n return value;\n }\n if (Array.isArray(value)) {\n return value.map(function (item) { return maybeStripTypename(item, config); });\n }\n if (isPlainObject(value)) {\n var modified_1 = {};\n Object.keys(value).forEach(function (key) {\n var child = value[key];\n if (key === \"__typename\") {\n return;\n }\n var fieldConfig = config[key];\n modified_1[key] =\n fieldConfig ?\n maybeStripTypename(child, fieldConfig)\n : stripTypename(child);\n });\n return modified_1;\n }\n return value;\n}\nvar getVariableDefinitions = wrap(function (document) {\n var definitions = {};\n visit(document, {\n VariableDefinition: function (node) {\n definitions[node.variable.name.value] = unwrapType(node.type);\n },\n });\n return definitions;\n});\nfunction unwrapType(node) {\n switch (node.kind) {\n case Kind.NON_NULL_TYPE:\n return unwrapType(node.type);\n case Kind.LIST_TYPE:\n return unwrapType(node.type);\n case Kind.NAMED_TYPE:\n return node.name.value;\n }\n}\n//# sourceMappingURL=removeTypenameFromVariables.js.map"],"names":["ApolloLink","stripTypename","isPlainObject","wrap","visit","Kind"],"mappings":"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"}
1
+ {"version":3,"file":"remove-typename.cjs","sources":["removeTypenameFromVariables.js"],"sourcesContent":["import { wrap } from \"optimism\";\nimport { Kind, visit } from \"graphql\";\nimport { ApolloLink } from \"../core/index.js\";\nimport { stripTypename, isPlainObject, cacheSizes, } from \"../../utilities/index.js\";\nimport { WeakCache } from \"@wry/caches\";\nexport var KEEP = \"__KEEP\";\nexport function removeTypenameFromVariables(options) {\n if (options === void 0) { options = Object.create(null); }\n return Object.assign(new ApolloLink(function (operation, forward) {\n var except = options.except;\n var query = operation.query, variables = operation.variables;\n if (variables) {\n operation.variables =\n except ?\n maybeStripTypenameUsingConfig(query, variables, except)\n : stripTypename(variables);\n }\n return forward(operation);\n }), globalThis.__DEV__ !== false ?\n {\n getMemoryInternals: function () {\n var _a;\n return {\n removeTypenameFromVariables: {\n getVariableDefinitions: (_a = getVariableDefinitions === null || getVariableDefinitions === void 0 ? void 0 : getVariableDefinitions.size) !== null && _a !== void 0 ? _a : 0,\n },\n };\n },\n }\n : {});\n}\nfunction maybeStripTypenameUsingConfig(query, variables, config) {\n var variableDefinitions = getVariableDefinitions(query);\n return Object.fromEntries(Object.entries(variables).map(function (keyVal) {\n var key = keyVal[0], value = keyVal[1];\n var typename = variableDefinitions[key];\n var typenameConfig = config[typename];\n keyVal[1] =\n typenameConfig ?\n maybeStripTypename(value, typenameConfig)\n : stripTypename(value);\n return keyVal;\n }));\n}\nfunction maybeStripTypename(value, config) {\n if (config === KEEP) {\n return value;\n }\n if (Array.isArray(value)) {\n return value.map(function (item) { return maybeStripTypename(item, config); });\n }\n if (isPlainObject(value)) {\n var modified_1 = {};\n Object.keys(value).forEach(function (key) {\n var child = value[key];\n if (key === \"__typename\") {\n return;\n }\n var fieldConfig = config[key];\n modified_1[key] =\n fieldConfig ?\n maybeStripTypename(child, fieldConfig)\n : stripTypename(child);\n });\n return modified_1;\n }\n return value;\n}\nvar getVariableDefinitions = wrap(function (document) {\n var definitions = {};\n visit(document, {\n VariableDefinition: function (node) {\n definitions[node.variable.name.value] = unwrapType(node.type);\n },\n });\n return definitions;\n}, {\n max: cacheSizes[\"removeTypenameFromVariables.getVariableDefinitions\"] ||\n 2000 /* defaultCacheSizes[\"removeTypenameFromVariables.getVariableDefinitions\"] */,\n cache: WeakCache,\n});\nfunction unwrapType(node) {\n switch (node.kind) {\n case Kind.NON_NULL_TYPE:\n return unwrapType(node.type);\n case Kind.LIST_TYPE:\n return unwrapType(node.type);\n case Kind.NAMED_TYPE:\n return node.name.value;\n }\n}\n//# sourceMappingURL=removeTypenameFromVariables.js.map"],"names":["ApolloLink","stripTypename","isPlainObject","wrap","visit","cacheSizes","WeakCache","Kind"],"mappings":"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"}
@@ -6,11 +6,12 @@ var optimism = require('optimism');
6
6
  var graphql = require('graphql');
7
7
  var core = require('../core');
8
8
  var utilities = require('../../utilities');
9
+ var caches = require('@wry/caches');
9
10
 
10
11
  var KEEP = "__KEEP";
11
12
  function removeTypenameFromVariables(options) {
12
13
  if (options === void 0) { options = Object.create(null); }
13
- return new core.ApolloLink(function (operation, forward) {
14
+ return Object.assign(new core.ApolloLink(function (operation, forward) {
14
15
  var except = options.except;
15
16
  var query = operation.query, variables = operation.variables;
16
17
  if (variables) {
@@ -20,7 +21,18 @@ function removeTypenameFromVariables(options) {
20
21
  : utilities.stripTypename(variables);
21
22
  }
22
23
  return forward(operation);
23
- });
24
+ }), globalThis.__DEV__ !== false ?
25
+ {
26
+ getMemoryInternals: function () {
27
+ var _a;
28
+ return {
29
+ removeTypenameFromVariables: {
30
+ getVariableDefinitions: (_a = getVariableDefinitions === null || getVariableDefinitions === void 0 ? void 0 : getVariableDefinitions.size) !== null && _a !== void 0 ? _a : 0,
31
+ },
32
+ };
33
+ },
34
+ }
35
+ : {});
24
36
  }
25
37
  function maybeStripTypenameUsingConfig(query, variables, config) {
26
38
  var variableDefinitions = getVariableDefinitions(query);
@@ -67,6 +79,10 @@ var getVariableDefinitions = optimism.wrap(function (document) {
67
79
  },
68
80
  });
69
81
  return definitions;
82
+ }, {
83
+ max: utilities.cacheSizes["removeTypenameFromVariables.getVariableDefinitions"] ||
84
+ 2000 ,
85
+ cache: caches.WeakCache,
70
86
  });
71
87
  function unwrapType(node) {
72
88
  switch (node.kind) {
@@ -6,6 +6,14 @@ interface KeepTypenameConfig {
6
6
  export interface RemoveTypenameFromVariablesOptions {
7
7
  except?: KeepTypenameConfig;
8
8
  }
9
- export declare function removeTypenameFromVariables(options?: RemoveTypenameFromVariablesOptions): ApolloLink;
9
+ export declare function removeTypenameFromVariables(options?: RemoveTypenameFromVariablesOptions): ApolloLink & ({
10
+ getMemoryInternals(): {
11
+ removeTypenameFromVariables: {
12
+ getVariableDefinitions: number;
13
+ };
14
+ };
15
+ } | {
16
+ getMemoryInternals?: undefined;
17
+ });
10
18
  export {};
11
19
  //# sourceMappingURL=removeTypenameFromVariables.d.ts.map
@@ -1,11 +1,12 @@
1
1
  import { wrap } from "optimism";
2
2
  import { Kind, visit } from "graphql";
3
3
  import { ApolloLink } from "../core/index.js";
4
- import { stripTypename, isPlainObject } from "../../utilities/index.js";
4
+ import { stripTypename, isPlainObject, cacheSizes, } from "../../utilities/index.js";
5
+ import { WeakCache } from "@wry/caches";
5
6
  export var KEEP = "__KEEP";
6
7
  export function removeTypenameFromVariables(options) {
7
8
  if (options === void 0) { options = Object.create(null); }
8
- return new ApolloLink(function (operation, forward) {
9
+ return Object.assign(new ApolloLink(function (operation, forward) {
9
10
  var except = options.except;
10
11
  var query = operation.query, variables = operation.variables;
11
12
  if (variables) {
@@ -15,7 +16,18 @@ export function removeTypenameFromVariables(options) {
15
16
  : stripTypename(variables);
16
17
  }
17
18
  return forward(operation);
18
- });
19
+ }), globalThis.__DEV__ !== false ?
20
+ {
21
+ getMemoryInternals: function () {
22
+ var _a;
23
+ return {
24
+ removeTypenameFromVariables: {
25
+ getVariableDefinitions: (_a = getVariableDefinitions === null || getVariableDefinitions === void 0 ? void 0 : getVariableDefinitions.size) !== null && _a !== void 0 ? _a : 0,
26
+ },
27
+ };
28
+ },
29
+ }
30
+ : {});
19
31
  }
20
32
  function maybeStripTypenameUsingConfig(query, variables, config) {
21
33
  var variableDefinitions = getVariableDefinitions(query);
@@ -62,6 +74,10 @@ var getVariableDefinitions = wrap(function (document) {
62
74
  },
63
75
  });
64
76
  return definitions;
77
+ }, {
78
+ max: cacheSizes["removeTypenameFromVariables.getVariableDefinitions"] ||
79
+ 2000 /* defaultCacheSizes["removeTypenameFromVariables.getVariableDefinitions"] */,
80
+ cache: WeakCache,
65
81
  });
66
82
  function unwrapType(node) {
67
83
  switch (node.kind) {
@@ -1 +1 @@
1
- {"version":3,"file":"removeTypenameFromVariables.js","sourceRoot":"","sources":["../../../src/link/remove-typename/removeTypenameFromVariables.ts"],"names":[],"mappings":"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","sourcesContent":["import { wrap } from \"optimism\";\nimport type { DocumentNode, TypeNode } from \"graphql\";\nimport { Kind, visit } from \"graphql\";\nimport { ApolloLink } from \"../core/index.js\";\nimport { stripTypename, isPlainObject } from \"../../utilities/index.js\";\nimport type { OperationVariables } from \"../../core/index.js\";\n\nexport const KEEP = \"__KEEP\";\n\ninterface KeepTypenameConfig {\n [key: string]: typeof KEEP | KeepTypenameConfig;\n}\n\nexport interface RemoveTypenameFromVariablesOptions {\n except?: KeepTypenameConfig;\n}\n\nexport function removeTypenameFromVariables(\n options: RemoveTypenameFromVariablesOptions = Object.create(null)\n) {\n return new ApolloLink((operation, forward) => {\n const { except } = options;\n const { query, variables } = operation;\n\n if (variables) {\n operation.variables =\n except ?\n maybeStripTypenameUsingConfig(query, variables, except)\n : stripTypename(variables);\n }\n\n return forward(operation);\n });\n}\n\nfunction maybeStripTypenameUsingConfig(\n query: DocumentNode,\n variables: OperationVariables,\n config: KeepTypenameConfig\n) {\n const variableDefinitions = getVariableDefinitions(query);\n\n return Object.fromEntries(\n Object.entries(variables).map((keyVal) => {\n const [key, value] = keyVal;\n const typename = variableDefinitions[key];\n const typenameConfig = config[typename];\n\n keyVal[1] =\n typenameConfig ?\n maybeStripTypename(value, typenameConfig)\n : stripTypename(value);\n\n return keyVal;\n })\n );\n}\n\ntype JSONPrimitive = string | number | null | boolean;\ntype JSONValue = JSONPrimitive | JSONValue[] | { [key: string]: JSONValue };\n\nfunction maybeStripTypename(\n value: JSONValue,\n config: KeepTypenameConfig[string]\n): JSONValue {\n if (config === KEEP) {\n return value;\n }\n\n if (Array.isArray(value)) {\n return value.map((item) => maybeStripTypename(item, config));\n }\n\n if (isPlainObject(value)) {\n const modified: Record<string, any> = {};\n\n Object.keys(value).forEach((key) => {\n const child = value[key];\n\n if (key === \"__typename\") {\n return;\n }\n\n const fieldConfig = config[key];\n\n modified[key] =\n fieldConfig ?\n maybeStripTypename(child, fieldConfig)\n : stripTypename(child);\n });\n\n return modified;\n }\n\n return value;\n}\n\nconst getVariableDefinitions = wrap((document: DocumentNode) => {\n const definitions: Record<string, string> = {};\n\n visit(document, {\n VariableDefinition(node) {\n definitions[node.variable.name.value] = unwrapType(node.type);\n },\n });\n\n return definitions;\n});\n\nfunction unwrapType(node: TypeNode): string {\n switch (node.kind) {\n case Kind.NON_NULL_TYPE:\n return unwrapType(node.type);\n case Kind.LIST_TYPE:\n return unwrapType(node.type);\n case Kind.NAMED_TYPE:\n return node.name.value;\n }\n}\n"]}
1
+ {"version":3,"file":"removeTypenameFromVariables.js","sourceRoot":"","sources":["../../../src/link/remove-typename/removeTypenameFromVariables.ts"],"names":[],"mappings":"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","sourcesContent":["import { wrap } from \"optimism\";\nimport type { DocumentNode, TypeNode } from \"graphql\";\nimport { Kind, visit } from \"graphql\";\nimport { ApolloLink } from \"../core/index.js\";\nimport {\n stripTypename,\n isPlainObject,\n cacheSizes,\n defaultCacheSizes,\n} from \"../../utilities/index.js\";\nimport type { OperationVariables } from \"../../core/index.js\";\nimport { WeakCache } from \"@wry/caches\";\n\nexport const KEEP = \"__KEEP\";\n\ninterface KeepTypenameConfig {\n [key: string]: typeof KEEP | KeepTypenameConfig;\n}\n\nexport interface RemoveTypenameFromVariablesOptions {\n except?: KeepTypenameConfig;\n}\n\nexport function removeTypenameFromVariables(\n options: RemoveTypenameFromVariablesOptions = Object.create(null)\n) {\n return Object.assign(\n new ApolloLink((operation, forward) => {\n const { except } = options;\n const { query, variables } = operation;\n\n if (variables) {\n operation.variables =\n except ?\n maybeStripTypenameUsingConfig(query, variables, except)\n : stripTypename(variables);\n }\n\n return forward(operation);\n }),\n __DEV__ ?\n {\n getMemoryInternals() {\n return {\n removeTypenameFromVariables: {\n getVariableDefinitions: getVariableDefinitions?.size ?? 0,\n },\n };\n },\n }\n : {}\n );\n}\n\nfunction maybeStripTypenameUsingConfig(\n query: DocumentNode,\n variables: OperationVariables,\n config: KeepTypenameConfig\n) {\n const variableDefinitions = getVariableDefinitions(query);\n\n return Object.fromEntries(\n Object.entries(variables).map((keyVal) => {\n const [key, value] = keyVal;\n const typename = variableDefinitions[key];\n const typenameConfig = config[typename];\n\n keyVal[1] =\n typenameConfig ?\n maybeStripTypename(value, typenameConfig)\n : stripTypename(value);\n\n return keyVal;\n })\n );\n}\n\ntype JSONPrimitive = string | number | null | boolean;\ntype JSONValue = JSONPrimitive | JSONValue[] | { [key: string]: JSONValue };\n\nfunction maybeStripTypename(\n value: JSONValue,\n config: KeepTypenameConfig[string]\n): JSONValue {\n if (config === KEEP) {\n return value;\n }\n\n if (Array.isArray(value)) {\n return value.map((item) => maybeStripTypename(item, config));\n }\n\n if (isPlainObject(value)) {\n const modified: Record<string, any> = {};\n\n Object.keys(value).forEach((key) => {\n const child = value[key];\n\n if (key === \"__typename\") {\n return;\n }\n\n const fieldConfig = config[key];\n\n modified[key] =\n fieldConfig ?\n maybeStripTypename(child, fieldConfig)\n : stripTypename(child);\n });\n\n return modified;\n }\n\n return value;\n}\n\nconst getVariableDefinitions = wrap(\n (document: DocumentNode) => {\n const definitions: Record<string, string> = {};\n\n visit(document, {\n VariableDefinition(node) {\n definitions[node.variable.name.value] = unwrapType(node.type);\n },\n });\n\n return definitions;\n },\n {\n max:\n cacheSizes[\"removeTypenameFromVariables.getVariableDefinitions\"] ||\n defaultCacheSizes[\"removeTypenameFromVariables.getVariableDefinitions\"],\n cache: WeakCache,\n }\n);\n\nfunction unwrapType(node: TypeNode): string {\n switch (node.kind) {\n case Kind.NON_NULL_TYPE:\n return unwrapType(node.type);\n case Kind.LIST_TYPE:\n return unwrapType(node.type);\n case Kind.NAMED_TYPE:\n return node.name.value;\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apollo/client",
3
- "version": "3.9.0-alpha.5",
3
+ "version": "3.9.0-beta.0",
4
4
  "description": "A fully-featured caching GraphQL client.",
5
5
  "private": false,
6
6
  "keywords": [
@@ -67,15 +67,15 @@
67
67
  "zen-observable-ts": "^1.2.5"
68
68
  },
69
69
  "devDependencies": {
70
- "@arethetypeswrong/cli": "0.13.2",
70
+ "@arethetypeswrong/cli": "0.13.3",
71
71
  "@babel/parser": "7.23.5",
72
- "@changesets/changelog-github": "0.4.8",
73
- "@changesets/cli": "2.26.2",
72
+ "@changesets/changelog-github": "0.5.0",
73
+ "@changesets/cli": "2.27.1",
74
74
  "@graphql-tools/schema": "10.0.2",
75
- "@microsoft/api-extractor": "7.38.3",
75
+ "@microsoft/api-extractor": "7.38.5",
76
76
  "@rollup/plugin-node-resolve": "11.2.1",
77
- "@size-limit/esbuild-why": "11.0.0",
78
- "@size-limit/preset-small-lib": "11.0.0",
77
+ "@size-limit/esbuild-why": "11.0.1",
78
+ "@size-limit/preset-small-lib": "11.0.1",
79
79
  "@testing-library/jest-dom": "6.1.5",
80
80
  "@testing-library/react": "14.1.2",
81
81
  "@testing-library/react-12": "npm:@testing-library/react@^12",
@@ -85,24 +85,24 @@
85
85
  "@types/fetch-mock": "7.3.8",
86
86
  "@types/glob": "8.1.0",
87
87
  "@types/hoist-non-react-statics": "3.3.5",
88
- "@types/jest": "29.5.10",
88
+ "@types/jest": "29.5.11",
89
89
  "@types/lodash": "4.14.202",
90
- "@types/node": "20.10.3",
90
+ "@types/node": "20.10.4",
91
91
  "@types/node-fetch": "2.6.9",
92
- "@types/react": "18.2.41",
92
+ "@types/react": "18.2.43",
93
93
  "@types/react-dom": "18.2.17",
94
94
  "@types/relay-runtime": "14.1.14",
95
95
  "@types/use-sync-external-store": "0.0.6",
96
- "@typescript-eslint/eslint-plugin": "6.12.0",
97
- "@typescript-eslint/parser": "6.12.0",
98
- "@typescript-eslint/rule-tester": "6.12.0",
99
- "@typescript-eslint/types": "6.12.0",
100
- "@typescript-eslint/utils": "6.12.0",
96
+ "@typescript-eslint/eslint-plugin": "6.14.0",
97
+ "@typescript-eslint/parser": "6.14.0",
98
+ "@typescript-eslint/rule-tester": "6.14.0",
99
+ "@typescript-eslint/types": "6.14.0",
100
+ "@typescript-eslint/utils": "6.14.0",
101
101
  "acorn": "8.11.2",
102
102
  "blob-polyfill": "7.0.20220408",
103
103
  "bytes": "3.1.2",
104
104
  "cross-fetch": "4.0.0",
105
- "eslint": "8.54.0",
105
+ "eslint": "8.56.0",
106
106
  "eslint-import-resolver-typescript": "3.6.1",
107
107
  "eslint-plugin-import": "npm:@phryneas/eslint-plugin-import@2.27.5-pr.2813.2817.199971c",
108
108
  "eslint-plugin-local-rules": "2.0.1",
@@ -117,7 +117,7 @@
117
117
  "jest-junit": "16.0.0",
118
118
  "lodash": "4.17.21",
119
119
  "patch-package": "8.0.0",
120
- "prettier": "3.1.0",
120
+ "prettier": "3.1.1",
121
121
  "react": "18.2.0",
122
122
  "react-17": "npm:react@^17",
123
123
  "react-dom": "18.2.0",
@@ -130,16 +130,16 @@
130
130
  "rollup-plugin-cleanup": "3.2.1",
131
131
  "rollup-plugin-terser": "7.0.2",
132
132
  "rxjs": "7.8.1",
133
- "size-limit": "11.0.0",
133
+ "size-limit": "11.0.1",
134
134
  "subscriptions-transport-ws": "0.11.0",
135
- "terser": "5.24.0",
135
+ "terser": "5.26.0",
136
136
  "ts-api-utils": "1.0.3",
137
137
  "ts-jest": "29.1.1",
138
138
  "ts-jest-resolver": "2.0.1",
139
139
  "ts-morph": "20.0.0",
140
- "ts-node": "10.9.1",
140
+ "ts-node": "10.9.2",
141
141
  "typedoc": "0.25.0",
142
- "typescript": "5.3.2",
142
+ "typescript": "5.3.3",
143
143
  "wait-for-observables": "1.0.3",
144
144
  "web-streams-polyfill": "3.2.1",
145
145
  "whatwg-fetch": "3.6.19"
@@ -11,16 +11,18 @@ declare const PROMISE_SYMBOL: unique symbol;
11
11
  * A child component reading the `QueryReference` via {@link useReadQuery} will
12
12
  * suspend until the promise resolves.
13
13
  */
14
- export interface QueryReference<TData = unknown> {
14
+ export interface QueryReference<TData = unknown, TVariables = unknown> {
15
15
  readonly [QUERY_REFERENCE_SYMBOL]: InternalQueryReference<TData>;
16
16
  [PROMISE_SYMBOL]: QueryRefPromise<TData>;
17
+ toPromise(): Promise<QueryReference<TData, TVariables>>;
17
18
  }
18
19
  interface InternalQueryReferenceOptions {
19
20
  onDispose?: () => void;
20
21
  autoDisposeTimeoutMs?: number;
21
22
  }
22
- export declare function wrapQueryRef<TData>(internalQueryRef: InternalQueryReference<TData>): QueryReference<TData>;
23
- export declare function unwrapQueryRef<TData>(queryRef: QueryReference<TData>): [InternalQueryReference<TData>, () => QueryRefPromise<TData>];
23
+ export declare function wrapQueryRef<TData, TVariables extends OperationVariables>(internalQueryRef: InternalQueryReference<TData>): QueryReference<TData, TVariables>;
24
+ export declare function getWrappedPromise<TData>(queryRef: QueryReference<TData, any>): QueryRefPromise<TData>;
25
+ export declare function unwrapQueryRef<TData>(queryRef: QueryReference<TData>): InternalQueryReference<TData>;
24
26
  export declare function updateWrappedQueryRef<TData>(queryRef: QueryReference<TData>, promise: QueryRefPromise<TData>): void;
25
27
  declare const OBSERVED_CHANGED_OPTIONS: readonly ["canonizeResults", "context", "errorPolicy", "fetchPolicy", "refetchWritePolicy", "returnPartialData"];
26
28
  type ObservedOptions = Pick<WatchQueryOptions, (typeof OBSERVED_CHANGED_OPTIONS)[number]>;
@@ -32,12 +34,13 @@ export declare class InternalQueryReference<TData = unknown> {
32
34
  private subscription;
33
35
  private listeners;
34
36
  private autoDisposeTimeoutId?;
35
- private status;
36
37
  private resolve;
37
38
  private reject;
38
39
  private references;
39
- constructor(observable: ObservableQuery<TData>, options: InternalQueryReferenceOptions);
40
+ constructor(observable: ObservableQuery<TData, any>, options: InternalQueryReferenceOptions);
41
+ get disposed(): boolean;
40
42
  get watchQueryOptions(): WatchQueryOptions<OperationVariables, TData>;
43
+ reinitialize(): void;
41
44
  retain(): () => void;
42
45
  didChangeOptions(watchQueryOptions: ObservedOptions): boolean;
43
46
  applyOptions(watchQueryOptions: ObservedOptions): QueryRefPromise<TData>;
@@ -50,6 +53,9 @@ export declare class InternalQueryReference<TData = unknown> {
50
53
  private handleError;
51
54
  private deliver;
52
55
  private initiateFetch;
56
+ private subscribeToQuery;
57
+ private setResult;
58
+ private createPendingPromise;
53
59
  }
54
60
  export {};
55
61
  //# sourceMappingURL=QueryReference.d.ts.map
@@ -1,30 +1,40 @@
1
1
  import { __assign } from "tslib";
2
2
  import { equal } from "@wry/equality";
3
- import { isNetworkRequestSettled } from "../../core/index.js";
4
3
  import { createFulfilledPromise, createRejectedPromise, } from "../../utilities/index.js";
5
4
  import { wrapPromiseWithState } from "../../utilities/index.js";
6
5
  var QUERY_REFERENCE_SYMBOL = Symbol();
7
6
  var PROMISE_SYMBOL = Symbol();
8
7
  export function wrapQueryRef(internalQueryRef) {
9
8
  var _a;
10
- return _a = {},
9
+ var ref = (_a = {
10
+ toPromise: function () {
11
+ // We avoid resolving this promise with the query data because we want to
12
+ // discourage using the server data directly from the queryRef. Instead,
13
+ // the data should be accessed through `useReadQuery`. When the server
14
+ // data is needed, its better to use `client.query()` directly.
15
+ //
16
+ // Here we resolve with the ref itself to make using this in React Router
17
+ // or TanStack Router `loader` functions a bit more ergonomic e.g.
18
+ //
19
+ // function loader() {
20
+ // return { queryRef: await preloadQuery(query).toPromise() }
21
+ // }
22
+ return getWrappedPromise(ref).then(function () { return ref; });
23
+ }
24
+ },
11
25
  _a[QUERY_REFERENCE_SYMBOL] = internalQueryRef,
12
26
  _a[PROMISE_SYMBOL] = internalQueryRef.promise,
13
- _a;
27
+ _a);
28
+ return ref;
29
+ }
30
+ export function getWrappedPromise(queryRef) {
31
+ var internalQueryRef = unwrapQueryRef(queryRef);
32
+ return internalQueryRef.promise.status === "fulfilled" ?
33
+ internalQueryRef.promise
34
+ : queryRef[PROMISE_SYMBOL];
14
35
  }
15
36
  export function unwrapQueryRef(queryRef) {
16
- var internalQueryRef = queryRef[QUERY_REFERENCE_SYMBOL];
17
- return [
18
- internalQueryRef,
19
- function () {
20
- // There is a chance the query ref's promise has been updated in the time
21
- // the original promise had been suspended. In that case, we want to use
22
- // it instead of the older promise which may contain outdated data.
23
- return internalQueryRef.promise.status === "fulfilled" ?
24
- internalQueryRef.promise
25
- : queryRef[PROMISE_SYMBOL];
26
- },
27
- ];
37
+ return queryRef[QUERY_REFERENCE_SYMBOL];
28
38
  }
29
39
  export function updateWrappedQueryRef(queryRef, promise) {
30
40
  queryRef[PROMISE_SYMBOL] = promise;
@@ -42,39 +52,16 @@ var InternalQueryReference = /** @class */ (function () {
42
52
  var _this = this;
43
53
  this.key = {};
44
54
  this.listeners = new Set();
45
- this.status = "loading";
46
55
  this.references = 0;
47
56
  this.handleNext = this.handleNext.bind(this);
48
57
  this.handleError = this.handleError.bind(this);
49
58
  this.dispose = this.dispose.bind(this);
50
59
  this.observable = observable;
51
- // Don't save this result as last result to prevent delivery of last result
52
- // when first subscribing
53
- this.result = observable.getCurrentResult(false);
54
60
  if (options.onDispose) {
55
61
  this.onDispose = options.onDispose;
56
62
  }
57
- if (isNetworkRequestSettled(this.result.networkStatus) ||
58
- (this.result.data &&
59
- (!this.result.partial || this.watchQueryOptions.returnPartialData))) {
60
- this.promise = createFulfilledPromise(this.result);
61
- this.status = "idle";
62
- }
63
- else {
64
- this.promise = wrapPromiseWithState(new Promise(function (resolve, reject) {
65
- _this.resolve = resolve;
66
- _this.reject = reject;
67
- }));
68
- }
69
- this.subscription = observable
70
- .filter(function (_a) {
71
- var data = _a.data;
72
- return !equal(data, {});
73
- })
74
- .subscribe({
75
- next: this.handleNext,
76
- error: this.handleError,
77
- });
63
+ this.setResult();
64
+ this.subscribeToQuery();
78
65
  // Start a timer that will automatically dispose of the query if the
79
66
  // suspended resource does not use this queryRef in the given time. This
80
67
  // helps prevent memory leaks when a component has unmounted before the
@@ -90,6 +77,13 @@ var InternalQueryReference = /** @class */ (function () {
90
77
  // promise in a pending state rendering the suspense boundary indefinitely.
91
78
  this.promise.then(startDisposeTimer, startDisposeTimer);
92
79
  }
80
+ Object.defineProperty(InternalQueryReference.prototype, "disposed", {
81
+ get: function () {
82
+ return this.subscription.closed;
83
+ },
84
+ enumerable: false,
85
+ configurable: true
86
+ });
93
87
  Object.defineProperty(InternalQueryReference.prototype, "watchQueryOptions", {
94
88
  get: function () {
95
89
  return this.observable.options;
@@ -97,6 +91,28 @@ var InternalQueryReference = /** @class */ (function () {
97
91
  enumerable: false,
98
92
  configurable: true
99
93
  });
94
+ InternalQueryReference.prototype.reinitialize = function () {
95
+ var observable = this.observable;
96
+ var originalFetchPolicy = this.watchQueryOptions.fetchPolicy;
97
+ try {
98
+ if (originalFetchPolicy !== "no-cache") {
99
+ observable.resetLastResults();
100
+ observable.silentSetOptions({ fetchPolicy: "cache-first" });
101
+ }
102
+ else {
103
+ observable.silentSetOptions({ fetchPolicy: "standby" });
104
+ }
105
+ this.subscribeToQuery();
106
+ if (originalFetchPolicy === "no-cache") {
107
+ return;
108
+ }
109
+ observable.resetDiff();
110
+ this.setResult();
111
+ }
112
+ finally {
113
+ observable.silentSetOptions({ fetchPolicy: originalFetchPolicy });
114
+ }
115
+ };
100
116
  InternalQueryReference.prototype.retain = function () {
101
117
  var _this = this;
102
118
  this.references++;
@@ -161,19 +177,18 @@ var InternalQueryReference = /** @class */ (function () {
161
177
  };
162
178
  InternalQueryReference.prototype.handleNext = function (result) {
163
179
  var _a;
164
- switch (this.status) {
165
- case "loading": {
180
+ switch (this.promise.status) {
181
+ case "pending": {
166
182
  // Maintain the last successful `data` value if the next result does not
167
183
  // have one.
168
184
  if (result.data === void 0) {
169
185
  result.data = this.result.data;
170
186
  }
171
- this.status = "idle";
172
187
  this.result = result;
173
188
  (_a = this.resolve) === null || _a === void 0 ? void 0 : _a.call(this, result);
174
189
  break;
175
190
  }
176
- case "idle": {
191
+ default: {
177
192
  // This occurs when switching to a result that is fully cached when this
178
193
  // class is instantiated. ObservableQuery will run reobserve when
179
194
  // subscribing, which delivers a result from the cache.
@@ -196,13 +211,12 @@ var InternalQueryReference = /** @class */ (function () {
196
211
  var _a;
197
212
  this.subscription.unsubscribe();
198
213
  this.subscription = this.observable.resubscribeAfterError(this.handleNext, this.handleError);
199
- switch (this.status) {
200
- case "loading": {
201
- this.status = "idle";
214
+ switch (this.promise.status) {
215
+ case "pending": {
202
216
  (_a = this.reject) === null || _a === void 0 ? void 0 : _a.call(this, error);
203
217
  break;
204
218
  }
205
- case "idle": {
219
+ default: {
206
220
  this.promise = createRejectedPromise(error);
207
221
  this.deliver(this.promise);
208
222
  }
@@ -213,11 +227,7 @@ var InternalQueryReference = /** @class */ (function () {
213
227
  };
214
228
  InternalQueryReference.prototype.initiateFetch = function (returnedPromise) {
215
229
  var _this = this;
216
- this.status = "loading";
217
- this.promise = wrapPromiseWithState(new Promise(function (resolve, reject) {
218
- _this.resolve = resolve;
219
- _this.reject = reject;
220
- }));
230
+ this.promise = this.createPendingPromise();
221
231
  this.promise.catch(function () { });
222
232
  // If the data returned from the fetch is deeply equal to the data already
223
233
  // in the cache, `handleNext` will not be triggered leaving the promise we
@@ -227,8 +237,7 @@ var InternalQueryReference = /** @class */ (function () {
227
237
  returnedPromise
228
238
  .then(function (result) {
229
239
  var _a;
230
- if (_this.status === "loading") {
231
- _this.status = "idle";
240
+ if (_this.promise.status === "pending") {
232
241
  _this.result = result;
233
242
  (_a = _this.resolve) === null || _a === void 0 ? void 0 : _a.call(_this, result);
234
243
  }
@@ -236,6 +245,33 @@ var InternalQueryReference = /** @class */ (function () {
236
245
  .catch(function () { });
237
246
  return returnedPromise;
238
247
  };
248
+ InternalQueryReference.prototype.subscribeToQuery = function () {
249
+ var _this = this;
250
+ this.subscription = this.observable
251
+ .filter(function (result) { return !equal(result.data, {}) && !equal(result, _this.result); })
252
+ .subscribe(this.handleNext, this.handleError);
253
+ };
254
+ InternalQueryReference.prototype.setResult = function () {
255
+ // Don't save this result as last result to prevent delivery of last result
256
+ // when first subscribing
257
+ var result = this.observable.getCurrentResult(false);
258
+ if (equal(result, this.result)) {
259
+ return;
260
+ }
261
+ this.result = result;
262
+ this.promise =
263
+ (result.data &&
264
+ (!result.partial || this.watchQueryOptions.returnPartialData)) ?
265
+ createFulfilledPromise(result)
266
+ : this.createPendingPromise();
267
+ };
268
+ InternalQueryReference.prototype.createPendingPromise = function () {
269
+ var _this = this;
270
+ return wrapPromiseWithState(new Promise(function (resolve, reject) {
271
+ _this.resolve = resolve;
272
+ _this.reject = reject;
273
+ }));
274
+ };
239
275
  return InternalQueryReference;
240
276
  }());
241
277
  export { InternalQueryReference };