kamboja-express
Version:
KambojaJS engine implementation using ExpressJs
51 lines (50 loc) • 2.28 kB
JavaScript
;
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;