PreparingTransformersModule.ts 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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 { IObfuscatingGuard } from '../../../interfaces/node-transformers/preparing-transformers/obfuscating-guards/IObfuscatingGuard';
  6. import { NodeTransformer } from '../../../enums/node-transformers/NodeTransformer';
  7. import { ObfuscatingGuard } from '../../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard';
  8. import { BlackListObfuscatingGuard } from '../../../node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard';
  9. import { CommentsTransformer } from '../../../node-transformers/preparing-transformers/CommentsTransformer';
  10. import { ConditionalCommentObfuscatingGuard } from '../../../node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard';
  11. import { CustomNodesTransformer } from '../../../node-transformers/preparing-transformers/CustomNodesTransformer';
  12. import { EvalCallExpressionTransformer } from '../../../node-transformers/preparing-transformers/EvaCallExpressionTransformer';
  13. import { MetadataTransformer } from '../../../node-transformers/preparing-transformers/MetadataTransformer';
  14. import { ObfuscatingGuardsTransformer } from '../../../node-transformers/preparing-transformers/ObfuscatingGuardsTransformer';
  15. import { ParentificationTransformer } from '../../../node-transformers/preparing-transformers/ParentificationTransformer';
  16. import { VariablePreserveTransformer } from "../../../node-transformers/preparing-transformers/VariablePreserveTransformer";
  17. export const preparingTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
  18. // preparing transformers
  19. bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
  20. .to(CommentsTransformer)
  21. .whenTargetNamed(NodeTransformer.CommentsTransformer);
  22. bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
  23. .to(CustomNodesTransformer)
  24. .whenTargetNamed(NodeTransformer.CustomNodesTransformer);
  25. bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
  26. .to(EvalCallExpressionTransformer)
  27. .whenTargetNamed(NodeTransformer.EvalCallExpressionTransformer);
  28. bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
  29. .to(MetadataTransformer)
  30. .whenTargetNamed(NodeTransformer.MetadataTransformer);
  31. bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
  32. .to(ObfuscatingGuardsTransformer)
  33. .whenTargetNamed(NodeTransformer.ObfuscatingGuardsTransformer);
  34. bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
  35. .to(ParentificationTransformer)
  36. .whenTargetNamed(NodeTransformer.ParentificationTransformer);
  37. // obfuscating guards
  38. bind<IObfuscatingGuard>(ServiceIdentifiers.INodeGuard)
  39. .to(BlackListObfuscatingGuard)
  40. .inSingletonScope()
  41. .whenTargetNamed(ObfuscatingGuard.BlackListNodeGuard);
  42. bind<IObfuscatingGuard>(ServiceIdentifiers.INodeGuard)
  43. .to(ConditionalCommentObfuscatingGuard)
  44. .inSingletonScope()
  45. .whenTargetNamed(ObfuscatingGuard.ConditionalCommentNodeGuard);
  46. // obfuscating guards factory
  47. bind<IObfuscatingGuard>(ServiceIdentifiers.Factory__INodeGuard)
  48. .toFactory<IObfuscatingGuard>(InversifyContainerFacade
  49. .getCacheFactory<ObfuscatingGuard, IObfuscatingGuard>(
  50. ServiceIdentifiers.INodeGuard
  51. ));
  52. bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
  53. .to(VariablePreserveTransformer)
  54. .whenTargetNamed(NodeTransformer.VariablePreserveTransformer);
  55. });