feat(gql): added some experimentation around graphql modules
This commit is contained in:
@@ -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",
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
type CatalogEntity {
|
||||
id: String
|
||||
}
|
||||
|
||||
type CatalogQuery {
|
||||
list: [CatalogEntity!]!
|
||||
}
|
||||
|
||||
type Query {
|
||||
catalog: CatalogQuery!
|
||||
}
|
||||
|
||||
@@ -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: '/' });
|
||||
|
||||
Reference in New Issue
Block a user