UNPKG

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
"use strict"; 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;