index.js 974 B

1234567891011121314151617181920212223242526
  1. "use strict";
  2. const esprima = require('esprima');
  3. const Obfuscator_1 = require('./src/Obfuscator');
  4. let escodegen = require('escodegen');
  5. class JavaScriptObfuscator {
  6. static obfuscate(sourceCode, options = {}) {
  7. let astTree = esprima.parse(sourceCode), obfuscator = new Obfuscator_1.Obfuscator(options);
  8. obfuscator.obfuscateNode(astTree);
  9. return JavaScriptObfuscator.generateCode(astTree, options);
  10. }
  11. static generateCode(astTree, options = {}) {
  12. let escodegenParams = Object.assign({}, JavaScriptObfuscator.escodegenParams);
  13. if (options.hasOwnProperty('compact')) {
  14. escodegenParams.format.compact = options.compact;
  15. }
  16. return escodegen.generate(astTree, escodegenParams);
  17. }
  18. }
  19. JavaScriptObfuscator.escodegenParams = {
  20. format: {
  21. compact: true
  22. },
  23. verbatim: 'x-verbatim-property'
  24. };
  25. exports.JavaScriptObfuscator = JavaScriptObfuscator;
  26. module.exports = JavaScriptObfuscator;