recife-koa
Version:
Recife Koa is a integration of recifejs with koa
40 lines (39 loc) • 1.61 kB
JavaScript
;
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;