ControlFlowTransformersModule.ts 2.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. import { InversifyContainerFacade } from '../../InversifyContainerFacade';
  2. import { ContainerModule, interfaces } from 'inversify';
  3. import { ServiceIdentifiers } from '../../ServiceIdentifiers';
  4. import { IControlFlowReplacer } from '../../../interfaces/node-transformers/control-flow-transformers/IControlFlowReplacer';
  5. import { ControlFlowReplacers } from '../../../enums/container/node-transformers/ControlFlowReplacers';
  6. import { BinaryExpressionControlFlowReplacer } from '../../../node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer';
  7. import { CallExpressionControlFlowReplacer } from '../../../node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer';
  8. import { LogicalExpressionControlFlowReplacer } from '../../../node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer';
  9. import { StringLiteralControlFlowReplacer } from '../../../node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer';
  10. export const controlFlowTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
  11. bind<IControlFlowReplacer>(ServiceIdentifiers.IControlFlowReplacer)
  12. .to(BinaryExpressionControlFlowReplacer)
  13. .whenTargetNamed(ControlFlowReplacers.BinaryExpressionControlFlowReplacer);
  14. bind<IControlFlowReplacer>(ServiceIdentifiers.IControlFlowReplacer)
  15. .to(CallExpressionControlFlowReplacer)
  16. .whenTargetNamed(ControlFlowReplacers.CallExpressionControlFlowReplacer);
  17. bind<IControlFlowReplacer>(ServiceIdentifiers.IControlFlowReplacer)
  18. .to(LogicalExpressionControlFlowReplacer)
  19. .whenTargetNamed(ControlFlowReplacers.LogicalExpressionControlFlowReplacer);
  20. bind<IControlFlowReplacer>(ServiceIdentifiers.IControlFlowReplacer)
  21. .to(StringLiteralControlFlowReplacer)
  22. .whenTargetNamed(ControlFlowReplacers.StringLiteralControlFlowReplacer);
  23. bind<IControlFlowReplacer>(ServiceIdentifiers.Factory__IControlFlowReplacer)
  24. .toFactory<IControlFlowReplacer>(InversifyContainerFacade
  25. .getCacheFactory<ControlFlowReplacers, IControlFlowReplacer>(ServiceIdentifiers.IControlFlowReplacer));
  26. });