Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | 3x 2x 2x 2x 5x 2x 2x 1x 1x | import { FlowHost, FlowRuleGroup, ResolvedFlowHost } from "../FlowDefinitions"; import { LoggerFactory } from "../logger-factory"; import { Logger } from "../logger-type"; import { HostResolver } from './hosts/HostResolver'; export class HostDefinitionResolver { private logger: Logger; private objectResolvers: HostResolver[]; constructor(loggerFactory: LoggerFactory, ...typeSpecificResolvers: HostResolver[] ) { this.logger = loggerFactory.getLogger('HostDefinitionResolver'); this.objectResolvers = typeSpecificResolvers; } // https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources public async resolveTarget(ruleHost: FlowHost, ruleGroup?: FlowRuleGroup): Promise<ResolvedFlowHost> { this.logger.info(`number of resolvers ${this.objectResolvers.length}, resolving object`, ruleHost) const targetResolver = this.objectResolvers.find(objResolver => objResolver.canResolve(ruleHost)) this.logger.info(`use resolver ${targetResolver}`, ruleHost) if (targetResolver) { return targetResolver.resolve(ruleHost, ruleGroup); } else { throw new Error( `An error resolving object, no supported resolver found ${JSON.stringify(ruleHost)}`, ); } } } |