mirror of
https://github.com/javascript-obfuscator/javascript-obfuscator
synced 2026-08-09 12:42:29 +00:00
59 lines
2.3 KiB
JavaScript
59 lines
2.3 KiB
JavaScript
"use strict";
|
|
|
|
var _createClass = function () {
|
|
function defineProperties(target, props) {
|
|
for (var i = 0; i < props.length; i++) {
|
|
var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ("value" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);
|
|
}
|
|
}return function (Constructor, protoProps, staticProps) {
|
|
if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;
|
|
};
|
|
}();
|
|
|
|
function _classCallCheck(instance, Constructor) {
|
|
if (!(instance instanceof Constructor)) {
|
|
throw new TypeError("Cannot call a class as a function");
|
|
}
|
|
}
|
|
|
|
var esprima = require('esprima');
|
|
var escodegen = require('escodegen');
|
|
var DefaultPreset_1 = require('./preset-options/DefaultPreset');
|
|
var Obfuscator_1 = require('./Obfuscator');
|
|
var OptionsNormalizer_1 = require("./OptionsNormalizer");
|
|
|
|
var JavaScriptObfuscator = function () {
|
|
function JavaScriptObfuscator() {
|
|
_classCallCheck(this, JavaScriptObfuscator);
|
|
}
|
|
|
|
_createClass(JavaScriptObfuscator, null, [{
|
|
key: 'obfuscate',
|
|
value: function obfuscate(sourceCode, customOptions) {
|
|
var astTree = esprima.parse(sourceCode),
|
|
options = OptionsNormalizer_1.OptionsNormalizer.normalize(Object.assign({}, DefaultPreset_1.DEFAULT_PRESET, customOptions)),
|
|
obfuscator = new Obfuscator_1.Obfuscator(options);
|
|
astTree = obfuscator.obfuscateNode(astTree);
|
|
return JavaScriptObfuscator.generateCode(astTree, options);
|
|
}
|
|
}, {
|
|
key: 'generateCode',
|
|
value: function generateCode(astTree, options) {
|
|
var escodegenParams = Object.assign({}, JavaScriptObfuscator.escodegenParams);
|
|
if (options.hasOwnProperty('compact')) {
|
|
escodegenParams.format = {
|
|
compact: options.compact
|
|
};
|
|
}
|
|
return escodegen.generate(astTree, escodegenParams);
|
|
}
|
|
}]);
|
|
|
|
return JavaScriptObfuscator;
|
|
}();
|
|
|
|
JavaScriptObfuscator.escodegenParams = {
|
|
verbatim: 'x-verbatim-property'
|
|
};
|
|
exports.JavaScriptObfuscator = JavaScriptObfuscator;
|