NodeTransformersModule.ts 1.2 KB

12345678910111213141516171819202122
  1. import { InversifyContainerFacade } from '../../InversifyContainerFacade';
  2. import { ContainerModule, interfaces } from 'inversify';
  3. import { ServiceIdentifiers } from '../../ServiceIdentifiers';
  4. import { INodeTransformer } from '../../../interfaces/node-transformers/INodeTransformer';
  5. import { ITransformerNamesGroupsBuilder } from '../../../interfaces/utils/ITransformerNamesGroupsBuilder';
  6. import { NodeTransformer } from '../../../enums/node-transformers/NodeTransformer';
  7. import { NodeTransformerNamesGroupsBuilder } from '../../../node-transformers/NodeTransformerNamesGroupsBuilder';
  8. export const nodeTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
  9. // node transformers factory
  10. bind<INodeTransformer>(ServiceIdentifiers.Factory__INodeTransformer)
  11. .toFactory<INodeTransformer, [NodeTransformer]>(InversifyContainerFacade
  12. .getCacheFactory<NodeTransformer, INodeTransformer>(ServiceIdentifiers.INodeTransformer));
  13. // node transformer names groups builder
  14. bind<ITransformerNamesGroupsBuilder<NodeTransformer, INodeTransformer>>(ServiceIdentifiers.INodeTransformerNamesGroupsBuilder)
  15. .to(NodeTransformerNamesGroupsBuilder)
  16. .inSingletonScope();
  17. });