JavaScriptObfuscatorFacade.ts 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import 'reflect-metadata';
  2. import { ServiceIdentifiers } from './container/ServiceIdentifiers';
  3. import { TInputOptions } from './types/options/TInputOptions';
  4. import { IInversifyContainerFacade } from './interfaces/container/IInversifyContainerFacade';
  5. import { IJavaScriptObfuscator } from './interfaces/IJavaScriptObfsucator';
  6. import { IObfuscationResult } from './interfaces/IObfuscationResult';
  7. import { InversifyContainerFacade } from './container/InversifyContainerFacade';
  8. import { JavaScriptObfuscatorCLI } from './cli/JavaScriptObfuscatorCLI';
  9. class JavaScriptObfuscatorFacade {
  10. /**
  11. * @param {string} sourceCode
  12. * @param {TInputOptions} inputOptions
  13. * @returns {IObfuscationResult}
  14. */
  15. public static obfuscate (sourceCode: string, inputOptions: TInputOptions = {}): IObfuscationResult {
  16. const inversifyContainerFacade: IInversifyContainerFacade = new InversifyContainerFacade();
  17. inversifyContainerFacade.load(sourceCode, inputOptions);
  18. const javaScriptObfuscator: IJavaScriptObfuscator = inversifyContainerFacade
  19. .get<IJavaScriptObfuscator>(ServiceIdentifiers.IJavaScriptObfuscator);
  20. const obfuscationResult: IObfuscationResult = javaScriptObfuscator.obfuscate(sourceCode);
  21. inversifyContainerFacade.unload();
  22. return obfuscationResult;
  23. }
  24. /**
  25. * @param {string[]} argv
  26. */
  27. public static runCLI (argv: string[]): void {
  28. const javaScriptObfuscatorCLI: JavaScriptObfuscatorCLI = new JavaScriptObfuscatorCLI(argv);
  29. javaScriptObfuscatorCLI.initialize();
  30. javaScriptObfuscatorCLI.run();
  31. }
  32. }
  33. export { JavaScriptObfuscatorFacade as JavaScriptObfuscator };