variable-container-module.ts 817 B

12345678910111213141516171819
  1. import { ContainerModule } from 'inversify';
  2. import { VariableEngine } from './variable-engine';
  3. import { VariableFieldKeyRenameService } from './services';
  4. import { ContainerProvider, VariableEngineProvider } from './providers';
  5. import { ASTRegisters } from './ast';
  6. export const VariableContainerModule = new ContainerModule(bind => {
  7. bind(VariableEngine).toSelf().inSingletonScope();
  8. bind(ASTRegisters).toSelf().inSingletonScope();
  9. bind(VariableFieldKeyRenameService).toSelf().inSingletonScope();
  10. // 提供 provider 注入 variableEngine,防止部分场景下的循环依赖
  11. bind(VariableEngineProvider).toDynamicValue(ctx => () => ctx.container.get(VariableEngine));
  12. // 提供 Container Provider 方便 AST 注入模块
  13. bind(ContainerProvider).toDynamicValue(ctx => () => ctx.container);
  14. });