inceptum
Version:
hipages take on the foundational library for enterprise-grade apps written in NodeJS
37 lines • 1.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const AbstractObjectDefinitionInspector_1 = require("../ioc/AbstractObjectDefinitionInspector");
const SingletonDefinition_1 = require("../ioc/objectdefinition/SingletonDefinition");
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) {
return (objectDefinition instanceof SingletonDefinition_1.SingletonDefinition)
&& (objectDefinition.getProducedClass().routes !== undefined);
}
/**
* @param {SingletonDefinition} objectDefinition singleton definition
*/
// tslint:disable-next-line:prefer-function-over-method
doInspect(objectDefinition) {
const routes = objectDefinition.getProducedClass().routes;
routes.forEach((route, index) => {
const instanceName = `instance_${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