UNPKG

kamboja-express

Version:

KambojaJS engine implementation using ExpressJs

51 lines (50 loc) 2.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var kamboja_1 = require("kamboja"); var ViewOutsideControllerError = "Relative view path can not be use inside middlewares"; var ViewActionResult = (function (_super) { tslib_1.__extends(ViewActionResult, _super); function ViewActionResult(model, viewName) { var _this = _super.call(this, null) || this; _this.model = model; _this.viewName = viewName; _this.engine = "Express"; return _this; } ViewActionResult.prototype.execute = function (request, response, routeInfo) { return tslib_1.__awaiter(this, void 0, void 0, function () { var className, viewPath, className, viewPath; return tslib_1.__generator(this, function (_a) { // results.view({}) if (!this.viewName) { if (!routeInfo) throw new Error(ViewOutsideControllerError); className = this.getClassName(routeInfo.qualifiedClassName); viewPath = className + "/" + routeInfo.methodMetaData.name.toLowerCase(); response.render(this, viewPath, this.model); } else if (this.viewName && this.viewName.indexOf("/") == -1) { if (!routeInfo) throw new Error(ViewOutsideControllerError); className = this.getClassName(routeInfo.qualifiedClassName); viewPath = className + "/" + this.viewName; response.render(this, viewPath, this.model); } else response.render(this, this.viewName, this.model); return [2 /*return*/]; }); }); }; ViewActionResult.prototype.getClassName = function (fullQualifiedClassName) { var tokens = fullQualifiedClassName.split(","); var rawName = tokens[0].toLowerCase(); var idx = rawName.lastIndexOf("controller"); if (idx > 0) return rawName.substring(0, idx); return rawName; }; return ViewActionResult; }(kamboja_1.Core.ActionResult)); exports.ViewActionResult = ViewActionResult;