UNPKG

@jeaks03/overseer

Version:

Just another TypeScript Back-End framework

45 lines 3.39 kB
"use strict"; 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=