dependency-injection-cat
Version:
DI Cat is a truly clean DI-container, which allows you not to pollute your business logic with decorators from DI/IOC libraries!
34 lines (33 loc) • 1.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.registerArrowFunctionBeanDependencies = void 0;
var CompilationContext_1 = require("../../compilation-context/CompilationContext");
var getParameterType_1 = require("./getParameterType");
var BeanDependenciesRepository_1 = require("./BeanDependenciesRepository");
var getQualifierValueFromFunctionArgument_1 = require("./getQualifierValueFromFunctionArgument");
var ExtendedSet_1 = require("../utils/ExtendedSet");
var registerArrowFunctionBeanDependencies = function (descriptor) {
var parameters = descriptor.node.initializer.parameters;
parameters.forEach(function (parameter) {
var qualifier = (0, getQualifierValueFromFunctionArgument_1.getQualifierValueFromFunctionArgument)(parameter, descriptor.contextDescriptor);
var qualifiedType = (0, getParameterType_1.getParameterType)(parameter);
if (qualifiedType === null) {
CompilationContext_1.CompilationContext.reportError({
node: parameter,
message: 'Can\'t qualify type of Bean parameter',
filePath: descriptor.contextDescriptor.absolutePath,
relatedContextPath: descriptor.contextDescriptor.absolutePath,
});
return;
}
BeanDependenciesRepository_1.BeanDependenciesRepository.registerBeanDependency(descriptor, {
node: parameter,
contextName: descriptor.contextDescriptor.name,
qualifiedType: qualifiedType,
parameterName: parameter.name.getText(),
qualifier: qualifier,
qualifiedBeans: new ExtendedSet_1.ExtendedSet()
});
});
};
exports.registerArrowFunctionBeanDependencies = registerArrowFunctionBeanDependencies;