UNPKG

recife-koa

Version:

Recife Koa is a integration of recifejs with koa

40 lines (39 loc) 1.61 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const koa_1 = __importDefault(require("koa")); const koa_bodyparser_1 = __importDefault(require("koa-bodyparser")); const cors_1 = __importDefault(require("@koa/cors")); const router_1 = __importDefault(require("@koa/router")); const apollo_server_koa_1 = require("apollo-server-koa"); class RecifeKoa { constructor(bodyParser, cors, homepage) { this.app = new koa_1.default(); this.router = new router_1.default(); this.app.use(koa_bodyparser_1.default(bodyParser)); if (cors && cors.enabled) { this.app.use(cors_1.default(cors)); } this.router.get('/', (ctx) => { ctx.body = homepage; }); this.app.use(this.router.routes()); } createApolloServer({ typeDefs, resolvers, context, graphqlConfig }) { const apolloServer = new apollo_server_koa_1.ApolloServer(Object.assign(Object.assign({}, graphqlConfig), { resolvers, typeDefs, context: ({ ctx }) => context({ method: ctx.request.method, url: ctx.request.url, header: ctx.request.header }) })); apolloServer.applyMiddleware({ app: this.app }); return apolloServer; } listen({ port, host }, callback) { const server = this.app.listen({ port, host }, () => callback()); return server; } } exports.default = RecifeKoa;