@jeaks03/overseer
Version:
Just another TypeScript Back-End framework
45 lines • 3.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const requisites_1 = require("../core/requisites");
const deasync_1 = require("deasync");
const authorizer_component_1 = require("../security/authorizer.component");
class Route {
constructor(details, handler, handlerName) {
this.details = details;
this.handler = handler;
this.handlerName = handlerName;
let path = this.details.path;
if (path.startsWith('/')) {
path = path.substring(1);
}
if (path.endsWith('/')) {
path = path.substring(0, path.length - 1);
}
this.details.path = path;
}
getParts() {
return this.details.path.split('/');
}
handle(info) {
requisites_1.Requisites.find(authorizer_component_1.Authorizer).authorizeRoute(this, info);
return this.resolve(info);
}
resolve(info) {
const controller = requisites_1.Requisites.findByName(this.handlerName);
let result = this.handler.apply(controller, [info]);
if (result instanceof Promise) {
result.then(response => {
result = response;
}).catch(err => {
result = err;
});
deasync_1.loopWhile(() => result instanceof Promise);
if (result instanceof Error) {
throw result;
}
}
return result;
}
}
exports.Route = Route;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcm91dGVzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbURBQWdEO0FBQ2hELHFDQUFvQztBQUdwQywyRUFBOEQ7QUFFOUQsTUFBYSxLQUFLO0lBQ2QsWUFBbUIsT0FBbUIsRUFBUyxPQUFZLEVBQVMsV0FBbUI7UUFBcEUsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUFTLFlBQU8sR0FBUCxPQUFPLENBQUs7UUFBUyxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuRixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztRQUU3QixJQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDckIsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDNUI7UUFFRCxJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDbkIsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDN0M7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDN0IsQ0FBQztJQUVNLFFBQVE7UUFDWCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRU0sTUFBTSxDQUFDLElBQThCO1FBQ3hDLHVCQUFVLENBQUMsSUFBSSxDQUFDLGlDQUFVLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU8sT0FBTyxDQUFDLElBQUk7UUFDaEIsTUFBTSxVQUFVLEdBQUcsdUJBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTNELElBQUksTUFBTSxHQUFjLElBQUksQ0FBQyxPQUFRLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEUsSUFBRyxNQUFNLFlBQVksT0FBTyxFQUFFO1lBQzFCLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ25CLE1BQU0sR0FBRyxRQUFRLENBQUE7WUFDckIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNYLE1BQU0sR0FBRyxHQUFHLENBQUM7WUFDakIsQ0FBQyxDQUFDLENBQUE7WUFDRixtQkFBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sWUFBWSxPQUFPLENBQUMsQ0FBQztZQUMzQyxJQUFHLE1BQU0sWUFBWSxLQUFLLEVBQUU7Z0JBQ3hCLE1BQU0sTUFBTSxDQUFDO2FBQ2hCO1NBQ0o7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0NBQ0o7QUExQ0Qsc0JBMENDIn0=