Skip to content

Commit 2437cf9

Browse files
authored
Support federated service:check/push with local schema file (#1489)
* Rename introspection provider to endpoint * skeleton out resolveServiceDefinition * Add file support for resolving federated sdl * support multiple schema files for fed services
1 parent 6ac438a commit 2437cf9

25 files changed

Lines changed: 438 additions & 236 deletions

File tree

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
- `apollo`
66
- Use "table" package for tabular output and word wrap support [#1524](https://github.com/apollographql/apollo-tooling/pull/1524)
77
- Use new single step mutation for checking federated service schemas [#1539](https://github.com/apollographql/apollo-tooling/pull/1539)
8+
- Add support for `localSchemaFile` for federated service commands [#1489](https://github.com/apollographql/apollo-tooling/pull/1489)
89
- `apollo-codegen-core`
910
- <First `apollo-codegen-core` related entry goes here>
1011
- `apollo-codegen-flow`
@@ -22,6 +23,8 @@
2223
- <First `apollo-graphql` related entry goes here>
2324
- `apollo-language-server`
2425
- Replace old mutation used for checking partial service schemas to use `checkPartialSchema` [#1539](https://github.com/apollographql/apollo-tooling/pull/1539)
26+
- Remove old federation-info provider [#1489](https://github.com/apollographql/apollo-tooling/pull/1489)
27+
- Support using local schema files for checks/pushes of federated services [#1489](https://github.com/apollographql/apollo-tooling/pull/1489)
2528
- `apollo-tools`
2629
- <First `apollo-tools` related entry goes here>
2730
- `vscode-apollo`

package-lock.json

Lines changed: 28 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/apollo-codegen-core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "apollo-codegen-core",
33
"description": "Core generator APIs for Apollo Codegen",
4-
"version": "0.35.4-alpha.1",
4+
"version": "0.36.0-alpha.0",
55
"author": "Apollo GraphQL <opensource@apollographql.com>",
66
"license": "MIT",
77
"repository": {

packages/apollo-codegen-flow/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "apollo-codegen-flow",
33
"description": "Flow generator module for Apollo Codegen",
4-
"version": "0.33.29-alpha.1",
4+
"version": "0.34.0-alpha.0",
55
"author": "Apollo GraphQL <opensource@apollographql.com>",
66
"license": "MIT",
77
"repository": {

packages/apollo-codegen-scala/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "apollo-codegen-scala",
33
"description": "Scala generator module for Apollo Codegen",
4-
"version": "0.34.29-alpha.1",
4+
"version": "0.35.0-alpha.0",
55
"author": "Apollo GraphQL <opensource@apollographql.com>",
66
"license": "MIT",
77
"repository": {

packages/apollo-codegen-swift/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "apollo-codegen-swift",
33
"description": "Swift generator module for Apollo Codegen",
4-
"version": "0.35.9-alpha.1",
4+
"version": "0.36.0-alpha.0",
55
"author": "Apollo GraphQL <opensource@apollographql.com>",
66
"license": "MIT",
77
"repository": {

packages/apollo-codegen-typescript/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "apollo-codegen-typescript",
33
"description": "TypeScript generator module for Apollo Codegen",
4-
"version": "0.35.4-alpha.1",
4+
"version": "0.36.0-alpha.0",
55
"author": "Apollo GraphQL <opensource@apollographql.com>",
66
"license": "MIT",
77
"repository": {

packages/apollo-language-server/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "apollo-language-server",
33
"description": "A language server for Apollo GraphQL projects",
4-
"version": "1.15.4-alpha.1",
4+
"version": "1.16.0-alpha.0",
55
"author": "Apollo GraphQL <opensource@apollographql.com>",
66
"license": "MIT",
77
"repository": {
@@ -17,6 +17,7 @@
1717
"npm": ">=6"
1818
},
1919
"dependencies": {
20+
"@apollo/federation": "0.9.4",
2021
"@apollographql/apollo-tools": "file:../apollo-tools",
2122
"@apollographql/graphql-language-service-interface": "^2.0.2",
2223
"@endemolshinegroup/cosmiconfig-typescript-loader": "^1.0.0",

packages/apollo-language-server/src/project/base.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,10 @@ export abstract class GraphQLProject implements GraphQLSchemaProvider {
155155
return this.schemaProvider.resolveSchema(config);
156156
}
157157

158+
public resolveFederatedServiceSDL() {
159+
return this.schemaProvider.resolveFederatedServiceSDL();
160+
}
161+
158162
public onSchemaChange(handler: NotificationHandler<GraphQLSchema>) {
159163
this.lastLoadDate = +new Date();
160164
return this.schemaProvider.onSchemaChange(handler);

packages/apollo-language-server/src/project/service.ts

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,6 @@ import { ServiceConfig } from "../config";
55
import { ClientIdentity } from "../engine";
66
import URI from "vscode-uri";
77

8-
import {
9-
ApolloFederationInfoProvider,
10-
federationInfoProviderFromConfig
11-
} from "../providers/federation-info";
12-
138
export function isServiceProject(
149
project: GraphQLProject
1510
): project is GraphQLServiceProject {
@@ -23,8 +18,6 @@ export interface GraphQLServiceProjectConfig {
2318
loadingHandler: LoadingHandler;
2419
}
2520
export class GraphQLServiceProject extends GraphQLProject {
26-
public federationInfoProvider: ApolloFederationInfoProvider;
27-
2821
constructor({
2922
clientIdentity,
3023
config,
@@ -40,7 +33,6 @@ export class GraphQLServiceProject extends GraphQLProject {
4033

4134
super({ config, fileSet, loadingHandler, clientIdentity });
4235
this.config = config;
43-
this.federationInfoProvider = federationInfoProviderFromConfig(config);
4436
}
4537

4638
get displayName() {
@@ -58,6 +50,6 @@ export class GraphQLServiceProject extends GraphQLProject {
5850
}
5951

6052
resolveFederationInfo() {
61-
return this.federationInfoProvider.resolveFederationInfo();
53+
return this.schemaProvider.resolveFederatedServiceSDL();
6254
}
6355
}

0 commit comments

Comments
 (0)