Releases: apollographql/federation
@apollo/[email protected]
Patch Changes
- Updated dependencies [
7bc0f8e8
]:- @apollo/[email protected]
- @apollo/[email protected]
- @apollo/[email protected]
@apollo/[email protected]
Minor Changes
-
This change introduces a configurable query plan cache. This option allows (#2385)
developers to provide their own query plan cache like so:new ApolloGateway({ queryPlannerConfig: { cache: new MyCustomQueryPlanCache(), }, });
The current default implementation is effectively as follows:
import { InMemoryLRUCache } from "@apollo/utils.keyvaluecache"; const cache = new InMemoryLRUCache<string>({ maxSize: Math.pow(2, 20) * 30, sizeCalculation<T>(obj: T): number { return Buffer.byteLength(JSON.stringify(obj), "utf8"); }, });
TypeScript users should implement the
QueryPlanCache
type which is now
exported by@apollo/query-planner
:import { QueryPlanCache } from '@apollo/query-planner'; class MyCustomQueryPlanCache implements QueryPlanCache { // ... }
-
Adds debug/testing query planner options (
debug.bypassPlannerForSingleSubgraph
) to bypass the query planning (#2441)
process for federated supergraph having only a single subgraph. The option is disabled by default, is not recommended
for production, and is not supported (it may be removed later). It is meant for debugging/testing purposes.
Patch Changes
-
Handle defaulted variables correctly during post-processing. (#2443)
Users who tried to use built-in conditional directives (skip/include) with defaulted variables and no variable provided would encounter an error thrown by operation post-processing saying that the variables weren't provided. The defaulted values went unaccounted for, so the operation would validate but then fail an assertion while resolving the conditional.
With this change, defaulted variable values are now collected and provided to post-processing (with defaults being overwritten by variables that are actually provided).
-
Updated dependencies [
d4426ff9
,a9385bdb
,6e2d24b5
,1a555d98
,ade7ceb8
]:- @apollo/[email protected]
- @apollo/[email protected]
- @apollo/[email protected]
@apollo/[email protected]
@apollo/[email protected]
Patch Changes
-
Handle defaulted variables correctly during post-processing. (#2443)
Users who tried to use built-in conditional directives (skip/include) with defaulted variables and no variable provided would encounter an error thrown by operation post-processing saying that the variables weren't provided. The defaulted values went unaccounted for, so the operation would validate but then fail an assertion while resolving the conditional.
With this change, defaulted variable values are now collected and provided to post-processing (with defaults being overwritten by variables that are actually provided).
-
Use globally available URL object instead of node builtin "url" module (#2293)
@apollo/[email protected]
Patch Changes
- Updated dependencies [
7bc0f8e8
]:- @apollo/[email protected]
- @apollo/[email protected]
@apollo/[email protected]
Minor Changes
- Addition of new query planner node types to enable federated subscriptions support (#2389)
Patch Changes
- Updated dependencies [
6e2d24b5
,1a555d98
]:- @apollo/[email protected]
- @apollo/[email protected]
@apollo/[email protected]
Patch Changes
-
Correctly attach provided subscription resolvers to the schema object (#2388)
-
Updated dependencies []:
- @apollo/[email protected]
@apollo/[email protected]
Patch Changes
- Updated dependencies [
de89e504
]:- @apollo/[email protected]
- @apollo/[email protected]
@apollo/[email protected]
Patch Changes
-
Update ts-graphviz dependency (#2395)
-
Updated dependencies []:
- @apollo/[email protected]
@apollo/[email protected]
Patch Changes
-
Update @apollo/utils.logger typings dependency (#2269)
-
Exposes, for each subgraph request, the path in the overall gateway operation at which that subgraph request gets inserted. This path is now available as the pathInIncomingRequest field in the arguments of RemoteGraphQLDataSource.willSendRequest and RemoteGraphQLDataSource.didReceiveResponse. (#2384)
-
Previously the
queryPlanStoreKey
was a hash of the query concatenated with an unhashedoperationName
if it was present. This resulted in variable length cache keys that could become unnecessarily long, occupying additional space in the query plan cache. (#2310)This change incorporates the
operationName
into the hash itself (ifoperationName
is present). -
Update @apollo/utils.createhash package, which drops support for node 12 (#2266)
-
Update @apollo/utils.isnodelike package, which dropped support for node 12 (#2268)
-
Update @apollo/utils.fetcher package, which drops support for node 12 (#2267)
-
Updated dependencies [
71a07f30
]:- @apollo/[email protected]
- @apollo/[email protected]
- @apollo/[email protected]