JavaScriptObfuscatorFacade.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  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 { IObfuscatedCode } from './interfaces/source-code/IObfuscatedCode';
  7. import { InversifyContainerFacade } from './container/InversifyContainerFacade';
  8. class JavaScriptObfuscatorFacade {
  9. /**
  10. * @type {string | undefined}
  11. */
  12. public static version: string = process.env.VERSION ?? 'unknown';
  13. /**
  14. * @param {string} sourceCode
  15. * @param {TInputOptions} inputOptions
  16. * @returns {IObfuscatedCode}
  17. */
  18. public static obfuscate (sourceCode: string, inputOptions: TInputOptions = {}): IObfuscatedCode {
  19. const inversifyContainerFacade: IInversifyContainerFacade = new InversifyContainerFacade();
  20. inversifyContainerFacade.load(sourceCode, '', inputOptions);
  21. const javaScriptObfuscator: IJavaScriptObfuscator = inversifyContainerFacade
  22. .get<IJavaScriptObfuscator>(ServiceIdentifiers.IJavaScriptObfuscator);
  23. const obfuscatedCode: IObfuscatedCode = javaScriptObfuscator.obfuscate(sourceCode);
  24. inversifyContainerFacade.unload();
  25. return obfuscatedCode;
  26. }
  27. }
  28. export { JavaScriptObfuscatorFacade as JavaScriptObfuscator };