feat(gql): added some experimentation around graphql modules

This commit is contained in:
blam
2020-07-27 15:36:28 +02:00
parent d82f1c217c
commit 1fb616c5f5
20 changed files with 528 additions and 19 deletions
+3
View File
@@ -22,6 +22,9 @@
},
"dependencies": {
"@backstage/backend-common": "^0.1.1-alpha.16",
"@backstage/plugin-catalog-graphql": "^0.1.1-alpha.16",
"@backstage/plugin-bogus-graphql": "^0.1.1-alpha.16",
"@graphql-modules/core": "^0.7.17",
"@types/express": "^4.17.6",
"apollo-server": "^2.16.0",
"apollo-server-express": "^2.16.0",
-11
View File
@@ -1,11 +0,0 @@
type CatalogEntity {
id: String
}
type CatalogQuery {
list: [CatalogEntity!]!
}
type Query {
catalog: CatalogQuery!
}
+11 -1
View File
@@ -20,7 +20,10 @@ import Router from 'express-promise-router';
import { Logger } from 'winston';
import fs from 'fs';
import path from 'path';
import { GraphQLModule } from '@graphql-modules/core';
import { ApolloServer } from 'apollo-server-express';
import { createModule as createCatalogModule } from '@backstage/plugin-catalog-graphql';
import { createModule as createBogusModule } from '@backstage/plugin-bogus-graphql';
export interface RouterOptions {
logger: Logger;
@@ -34,7 +37,14 @@ export async function createRouter(
'utf-8',
);
const server = new ApolloServer({ typeDefs, logger: options.logger });
const catalogModule = await createCatalogModule(options);
const bogusModule = await createBogusModule(options);
const { schema } = new GraphQLModule({
imports: [catalogModule, bogusModule],
typeDefs,
});
const server = new ApolloServer({ schema, logger: options.logger });
const router = Router();
const apolloMiddlware = server.getMiddleware({ path: '/' });