index.js 968 B

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