UNPKG

kamboja-express

Version:

KambojaJS engine implementation using ExpressJs

64 lines (63 loc) 2.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var request_adapter_1 = require("./request-adapter"); var response_adapter_1 = require("./response-adapter"); var kamboja_1 = require("kamboja"); var Express = require("express"); var ExpressEngine = (function () { function ExpressEngine() { this.application = Express(); } ExpressEngine.prototype.init = function (routes, option) { var _this = this; //routes routes.forEach(function (route) { var method = route.httpMethod.toLowerCase(); _this.application[method](route.route, function (req, resp, next) { return tslib_1.__awaiter(_this, void 0, void 0, function () { var handler; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: handler = new kamboja_1.RequestHandler(option, new request_adapter_1.RequestAdapter(req), new response_adapter_1.ResponseAdapter(resp, next), route); return [4 /*yield*/, handler.execute()]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }); }); //rest of the unhandled request and 404 handler this.application.use(function (req, resp, next) { return tslib_1.__awaiter(_this, void 0, void 0, function () { var handler; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: handler = new kamboja_1.RequestHandler(option, new request_adapter_1.RequestAdapter(req), new response_adapter_1.ResponseAdapter(resp, next)); return [4 /*yield*/, handler.execute()]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }); //error handler this.application.use(function (err, req, res, next) { return tslib_1.__awaiter(_this, void 0, void 0, function () { var handler; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: handler = new kamboja_1.RequestHandler(option, new request_adapter_1.RequestAdapter(req), new response_adapter_1.ResponseAdapter(res, next), err); return [4 /*yield*/, handler.execute()]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }); return this.application; }; return ExpressEngine; }()); exports.ExpressEngine = ExpressEngine;