UNPKG

inceptum

Version:

hipages take on the foundational library for enterprise-grade apps written in NodeJS

51 lines 2.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WebRoutingInspector = void 0; const BaseSingletonDefinition_1 = require("../ioc/objectdefinition/BaseSingletonDefinition"); const AbstractObjectDefinitionInspector_1 = require("../ioc/AbstractObjectDefinitionInspector"); const WebDecorators_1 = require("./WebDecorators"); class WebRoutingInspector extends AbstractObjectDefinitionInspector_1.AbstractObjectDefinitionInspector { constructor(definition) { super(); this.routesToRegister = []; this.definition = definition; this.definition.setPropertyByValue('routesToRegister', this.routesToRegister); } // tslint:disable-next-line:prefer-function-over-method interestedIn(objectDefinition) { if (!(objectDefinition instanceof BaseSingletonDefinition_1.BaseSingletonDefinition)) { return false; } return (objectDefinition.getProducedClass().routes !== undefined) || (0, WebDecorators_1.hasWebDecoratorMetadata)(objectDefinition.getProducedClass().prototype); } /** * @param {SingletonDefinition} objectDefinition singleton definition */ // tslint:disable-next-line:prefer-function-over-method doInspect(objectDefinition) { if (objectDefinition.getProducedClass().routes) { // Old way this.processRoutes(objectDefinition.getProducedClass().routes || [], objectDefinition); } if ((0, WebDecorators_1.hasWebDecoratorMetadata)(objectDefinition.getProducedClass().prototype)) { // New way this.processRoutes((0, WebDecorators_1.getWebDecoratorMetadata)(objectDefinition.getProducedClass().prototype).routes || [], objectDefinition); } } processRoutes(routes, objectDefinition) { routes.forEach((route, index) => { const instanceName = `instance_${objectDefinition.getName()}_${index}`; this.routesToRegister.push({ verb: route.verb || 'get', path: route.path, methodName: route.methodName, instanceProperty: instanceName, objectName: objectDefinition.getName(), }); this.definition.setPropertyByRef(instanceName, objectDefinition.getName()); }); } } exports.WebRoutingInspector = WebRoutingInspector; //# sourceMappingURL=WebRoutingInspector.js.map