@jeaks03/overseer
Version:
Just another TypeScript Back-End framework
33 lines • 2.53 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const custom_types_1 = require("../misc/custom-types");
const logger_1 = __importDefault(require("@jeaks03/logger"));
const way_details_1 = require("../routes/way-details");
const router_1 = require("../routes/router");
const route_1 = require("../routes/route");
/**
* Used to specify an endpoint
*/
function Pathway(baseDetails) {
const details = way_details_1.WayDetails.defaults(baseDetails);
// tslint:disable-next-line
return function (target /* instance */, propertyKey, descriptor) {
if (descriptor.value instanceof custom_types_1.AsyncFunction) {
logger_1.default.error(router_1.Router, 'Controller methods must not be async. They may however return a promise');
throw new Error(`Method ${target.constructor.name}.${propertyKey.toString()}(..) cannot be async`);
}
if (!target.__shadowMeta) {
target.__shadowMeta = {
routes: []
};
}
target.__shadowMeta.routes.push(new route_1.Route(details, descriptor.value, target.constructor.name));
return descriptor;
};
}
exports.Pathway = Pathway;
;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aHdheS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNvcmF0b3JzL3BhdGh3YXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx1REFBbUU7QUFDbkUsNkRBQXFDO0FBQ3JDLHVEQUFtRDtBQUNuRCw2Q0FBMEM7QUFDMUMsMkNBQXdDO0FBRXhDOztHQUVHO0FBQ0gsU0FBZ0IsT0FBTyxDQUFDLFdBQXdCO0lBQzVDLE1BQU0sT0FBTyxHQUFHLHdCQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRWpELDJCQUEyQjtJQUMzQixPQUFPLFVBQVMsTUFBb0IsQ0FBQyxjQUFjLEVBQUUsV0FBNEIsRUFBRSxVQUE4QjtRQUM3RyxJQUFHLFVBQVUsQ0FBQyxLQUFLLFlBQVksNEJBQWEsRUFBRTtZQUMxQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxlQUFNLEVBQUUseUVBQXlFLENBQUMsQ0FBQztZQUNoRyxNQUFNLElBQUksS0FBSyxDQUFDLFVBQVUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRSxzQkFBc0IsQ0FBQyxDQUFBO1NBQ3JHO1FBRUQsSUFBRyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUU7WUFDckIsTUFBTSxDQUFDLFlBQVksR0FBRztnQkFDbEIsTUFBTSxFQUFFLEVBQUU7YUFDWixDQUFDO1NBQ047UUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxhQUFLLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQy9GLE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUMsQ0FBQTtBQUNMLENBQUM7QUFuQkQsMEJBbUJDO0FBQUEsQ0FBQyJ9