mirror of
https://github.com/javascript-obfuscator/javascript-obfuscator
synced 2026-08-09 12:42:29 +00:00
dev
This commit is contained in:
@@ -2,14 +2,14 @@
|
||||
const Obfuscator_1 = require('./src/Obfuscator');
|
||||
let escodegen = require('escodegen'), esprima = require('esprima');
|
||||
class JavaScriptObfuscator {
|
||||
static obfuscate(sourceCode, options) {
|
||||
static obfuscate(sourceCode, options = {}) {
|
||||
let astTree = esprima.parse(sourceCode), obfuscator = new Obfuscator_1.Obfuscator(options);
|
||||
obfuscator.obfuscateNode(astTree);
|
||||
return JavaScriptObfuscator.generateCode(astTree, options);
|
||||
}
|
||||
static generateCode(astTree, options) {
|
||||
static generateCode(astTree, options = {}) {
|
||||
let escodegenParams = Object.assign({}, JavaScriptObfuscator.escodegenParams);
|
||||
if (options.compact !== undefined) {
|
||||
if (options.hasOwnProperty('compact')) {
|
||||
escodegenParams.format.compact = options.compact;
|
||||
}
|
||||
return escodegen.generate(astTree, escodegenParams);
|
||||
|
||||
@@ -22,7 +22,7 @@ export class JavaScriptObfuscator {
|
||||
* @param sourceCode
|
||||
* @param options
|
||||
*/
|
||||
public static obfuscate (sourceCode: string, options: any): string {
|
||||
public static obfuscate (sourceCode: string, options: any = {}): string {
|
||||
let astTree: any = esprima.parse(sourceCode),
|
||||
obfuscator: Obfuscator = new Obfuscator(options);
|
||||
|
||||
@@ -35,10 +35,10 @@ export class JavaScriptObfuscator {
|
||||
* @param astTree
|
||||
* @param options
|
||||
*/
|
||||
private static generateCode (astTree: any, options: any): string {
|
||||
private static generateCode (astTree: any, options: any = {}): string {
|
||||
let escodegenParams: any = Object.assign({}, JavaScriptObfuscator.escodegenParams);
|
||||
|
||||
if (options.compact !== undefined) {
|
||||
if (options.hasOwnProperty('compact')) {
|
||||
escodegenParams.format.compact = options.compact;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
"use strict";
|
||||
let estraverse = require('estraverse');
|
||||
class NodeUtils {
|
||||
static getNodeScope(node, deep = 0) {
|
||||
let scopeNodes = [
|
||||
@@ -16,6 +17,19 @@ class NodeUtils {
|
||||
if (deep > 0) {
|
||||
return NodeUtils.getNodeScope(node.parentNode, --deep);
|
||||
}
|
||||
if (node.type !== 'BlockStatement') {
|
||||
let blockStatementNode;
|
||||
estraverse.traverse(node, {
|
||||
enter: function (node, parent) {
|
||||
switch (node.type) {
|
||||
case 'BlockStatement':
|
||||
blockStatementNode = node;
|
||||
this['break']();
|
||||
}
|
||||
}
|
||||
});
|
||||
return blockStatementNode;
|
||||
}
|
||||
return node;
|
||||
}
|
||||
static getParentNodeWithType(node, types, limitNodeTypes = [], deep = 0) {
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
let estraverse = require('estraverse');
|
||||
|
||||
export class NodeUtils {
|
||||
/**
|
||||
* @param node
|
||||
@@ -23,6 +25,23 @@ export class NodeUtils {
|
||||
return NodeUtils.getNodeScope(node.parentNode, --deep);
|
||||
}
|
||||
|
||||
if (node.type !== 'BlockStatement') {
|
||||
let blockStatementNode: any;
|
||||
|
||||
estraverse.traverse(node, {
|
||||
enter: function (node, parent) {
|
||||
switch (node.type) {
|
||||
case 'BlockStatement':
|
||||
blockStatementNode = node;
|
||||
|
||||
this['break']();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return blockStatementNode;
|
||||
}
|
||||
|
||||
return node; // BlockStatement of scopeNodes
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user