PreparingTransformersModule.ts 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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 { ConditionalCommentObfuscatingGuard } from '../../../node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard';
  10. import { CustomCodeHelpersTransformer } from '../../../node-transformers/preparing-transformers/CustomCodeHelpersTransformer';
  11. import { EvalCallExpressionTransformer } from '../../../node-transformers/preparing-transformers/EvalCallExpressionTransformer';
  12. import { ForceTransformStringObfuscatingGuard } from '../../../node-transformers/preparing-transformers/obfuscating-guards/ForceTransformStringObfuscatingGuard';
  13. import { IgnoredImportObfuscatingGuard } from '../../../node-transformers/preparing-transformers/obfuscating-guards/IgnoredImportObfuscatingGuard';
  14. import { MetadataTransformer } from '../../../node-transformers/preparing-transformers/MetadataTransformer';
  15. import { ObfuscatingGuardsTransformer } from '../../../node-transformers/preparing-transformers/ObfuscatingGuardsTransformer';
  16. import { ParentificationTransformer } from '../../../node-transformers/preparing-transformers/ParentificationTransformer';
  17. import { ReservedStringObfuscatingGuard } from '../../../node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard';
  18. import { VariablePreserveTransformer } from '../../../node-transformers/preparing-transformers/VariablePreserveTransformer';
  19. export const preparingTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
  20. // preparing transformers
  21. bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
  22. .to(CustomCodeHelpersTransformer)
  23. .whenTargetNamed(NodeTransformer.CustomCodeHelpersTransformer);
  24. bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
  25. .to(EvalCallExpressionTransformer)
  26. .whenTargetNamed(NodeTransformer.EvalCallExpressionTransformer);
  27. bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
  28. .to(MetadataTransformer)
  29. .whenTargetNamed(NodeTransformer.MetadataTransformer);
  30. bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
  31. .to(ObfuscatingGuardsTransformer)
  32. .whenTargetNamed(NodeTransformer.ObfuscatingGuardsTransformer);
  33. bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
  34. .to(ParentificationTransformer)
  35. .whenTargetNamed(NodeTransformer.ParentificationTransformer);
  36. bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
  37. .to(VariablePreserveTransformer)
  38. .whenTargetNamed(NodeTransformer.VariablePreserveTransformer);
  39. // obfuscating guards
  40. bind<IObfuscatingGuard>(ServiceIdentifiers.INodeGuard)
  41. .to(BlackListObfuscatingGuard)
  42. .inSingletonScope()
  43. .whenTargetNamed(ObfuscatingGuard.BlackListObfuscatingGuard);
  44. bind<IObfuscatingGuard>(ServiceIdentifiers.INodeGuard)
  45. .to(ConditionalCommentObfuscatingGuard)
  46. .inSingletonScope()
  47. .whenTargetNamed(ObfuscatingGuard.ConditionalCommentObfuscatingGuard);
  48. bind<IObfuscatingGuard>(ServiceIdentifiers.INodeGuard)
  49. .to(ForceTransformStringObfuscatingGuard)
  50. .inSingletonScope()
  51. .whenTargetNamed(ObfuscatingGuard.ForceTransformStringObfuscatingGuard);
  52. bind<IObfuscatingGuard>(ServiceIdentifiers.INodeGuard)
  53. .to(IgnoredImportObfuscatingGuard)
  54. .inSingletonScope()
  55. .whenTargetNamed(ObfuscatingGuard.IgnoredImportObfuscatingGuard);
  56. bind<IObfuscatingGuard>(ServiceIdentifiers.INodeGuard)
  57. .to(ReservedStringObfuscatingGuard)
  58. .inSingletonScope()
  59. .whenTargetNamed(ObfuscatingGuard.ReservedStringObfuscatingGuard);
  60. // obfuscating guards factory
  61. bind<IObfuscatingGuard>(ServiceIdentifiers.Factory__INodeGuard)
  62. .toFactory<IObfuscatingGuard, [ObfuscatingGuard]>(InversifyContainerFacade
  63. .getCacheFactory<ObfuscatingGuard, IObfuscatingGuard>(
  64. ServiceIdentifiers.INodeGuard
  65. ));
  66. });