added TNodeObfuscator type

This commit is contained in:
sanex3339
2016-05-30 17:00:07 +03:00
parent ebbabb024e
commit 47d863f97a
11 changed files with 31 additions and 25 deletions
+5 -5
View File
@@ -9,7 +9,7 @@ import { IPropertyNode } from "./interfaces/nodes/IPropertyNode";
import { INode } from './interfaces/nodes/INode';
import { IVariableDeclaratorNode } from "./interfaces/nodes/IVariableDeclaratorNode";
import { BlockScopeNode } from "./types/BlockScopeNode";
import { TBlockScopeNode } from "./types/TBlockScopeNode";
import { NodeType } from "./enums/NodeType";
@@ -69,13 +69,13 @@ export class NodeUtils {
* @param depth
* @returns {INode}
*/
public static getBlockScopeOfNode (node: INode, depth: number = 0): BlockScopeNode {
public static getBlockScopeOfNode (node: INode, depth: number = 0): TBlockScopeNode {
if (!node.parentNode) {
throw new ReferenceError('`parentNode` property of given node is `undefined`');
}
if (node.parentNode.type === NodeType.Program) {
return <BlockScopeNode> node.parentNode;
return <TBlockScopeNode> node.parentNode;
}
if (!Utils.arrayContains(NodeUtils.scopeNodes, node.parentNode.type)) {
@@ -90,7 +90,7 @@ export class NodeUtils {
return NodeUtils.getBlockScopeOfNode(node.parentNode);
}
return <BlockScopeNode> node; // blocks statement of scopeNodes
return <TBlockScopeNode> node; // blocks statement of scopeNodes
}
/**
@@ -142,7 +142,7 @@ export class NodeUtils {
* @param node
* @returns {boolean}
*/
public static isNodeHasBlockScope (node: INode): node is BlockScopeNode {
public static isNodeHasBlockScope (node: INode): node is TBlockScopeNode {
return node.hasOwnProperty('body');
}
+6 -5
View File
@@ -1,11 +1,12 @@
import * as estraverse from 'estraverse';
import { ICustomNode } from './interfaces/ICustomNode';
import { INodeObfuscator } from './interfaces/INodeObfuscator';
import { INodesGroup } from './interfaces/INodesGroup';
import { INode } from './interfaces/nodes/INode';
import { IOptions } from "./interfaces/IOptions";
import { TNodeObfuscator } from "./types/TNodeObfuscator";
import { AppendState } from './enums/AppendState';
import { NodeType } from './enums/NodeType';
@@ -29,9 +30,9 @@ export class Obfuscator {
private nodes: Map <string, ICustomNode> = new Map <string, ICustomNode> ();
/**
* @type {Map<string, Function[]>}
* @type {Map<string, TNodeObfuscator[]>}
*/
private nodeObfuscators: Map <string, Function[]> = new Map <string, Function[]> ([
private nodeObfuscators: Map <string, TNodeObfuscator[]> = new Map <string, TNodeObfuscator[]> ([
[NodeType.ArrowFunctionExpression, [FunctionObfuscator]],
[NodeType.ClassDeclaration, [FunctionDeclarationObfuscator]],
[NodeType.CatchClause, [CatchClauseObfuscator]],
@@ -123,8 +124,8 @@ export class Obfuscator {
return;
}
this.nodeObfuscators.get(node.type).forEach((obfuscator: Function) => {
new (<INodeObfuscator> obfuscator(this.nodes, this.options)).obfuscateNode(node, parentNode);
this.nodeObfuscators.get(node.type).forEach((obfuscator: TNodeObfuscator) => {
new obfuscator(this.nodes, this.options).obfuscateNode(node, parentNode);
});
}
@@ -1,6 +1,6 @@
import * as esprima from 'esprima';
import { BlockScopeNode } from "../../types/BlockScopeNode";
import { TBlockScopeNode } from "../../types/TBlockScopeNode";
import { Node } from '../Node';
import { NodeUtils } from "../../NodeUtils";
@@ -15,7 +15,7 @@ export class ConsoleOutputDisableExpressionNode extends Node {
/**
* @param blockScopeNode
*/
public appendNode (blockScopeNode: BlockScopeNode): void {
public appendNode (blockScopeNode: TBlockScopeNode): void {
NodeUtils.prependNode(blockScopeNode.body, this.getNode());
}
@@ -1,4 +1,4 @@
import { BlockScopeNode } from "../../types/BlockScopeNode";
import { TBlockScopeNode } from "../../types/TBlockScopeNode";
import { NodeType } from "../../enums/NodeType";
@@ -25,7 +25,7 @@ export class DebugProtectionFunctionCallNode extends Node {
/**
* @param blockScopeNode
*/
public appendNode (blockScopeNode: BlockScopeNode): void {
public appendNode (blockScopeNode: TBlockScopeNode): void {
NodeUtils.appendNode(blockScopeNode.body, this.getNode());
}
@@ -1,4 +1,4 @@
import { BlockScopeNode } from "../../types/BlockScopeNode";
import { TBlockScopeNode } from "../../types/TBlockScopeNode";
import { NodeType } from '../../enums/NodeType';
@@ -25,7 +25,7 @@ export class DebugProtectionFunctionIntervalNode extends Node {
/**
* @param blockScopeNode
*/
public appendNode (blockScopeNode: BlockScopeNode): void {
public appendNode (blockScopeNode: TBlockScopeNode): void {
NodeUtils.appendNode(blockScopeNode.body, this.getNode());
}
@@ -1,6 +1,6 @@
import * as esprima from 'esprima';
import { BlockScopeNode } from "../../types/BlockScopeNode";
import { TBlockScopeNode } from "../../types/TBlockScopeNode";
import { Node } from '../Node';
import { NodeUtils } from '../../NodeUtils';
@@ -28,7 +28,7 @@ export class DebugProtectionFunctionNode extends Node {
/**
* @param blockScopeNode
*/
public appendNode (blockScopeNode: BlockScopeNode): void {
public appendNode (blockScopeNode: TBlockScopeNode): void {
let programBodyLength: number = blockScopeNode.body.length,
randomIndex: number = Utils.getRandomInteger(0, programBodyLength);
@@ -2,7 +2,7 @@ import * as esprima from 'esprima';
import { INode } from "../../interfaces/nodes/INode";
import { BlockScopeNode } from "../../types/BlockScopeNode";
import { TBlockScopeNode } from "../../types/TBlockScopeNode";
import { AppendState } from "../../enums/AppendState";
@@ -53,7 +53,7 @@ export class UnicodeArrayCallsWrapper extends Node {
/**
* @param blockScopeNode
*/
public appendNode (blockScopeNode: BlockScopeNode): void {
public appendNode (blockScopeNode: TBlockScopeNode): void {
NodeUtils.insertNodeAtIndex(blockScopeNode.body, this.getNode(), 1);
}
@@ -2,7 +2,7 @@ import * as escodegen from 'escodegen';
import { INode } from '../../interfaces/nodes/INode';
import { BlockScopeNode } from "../../types/BlockScopeNode";
import { TBlockScopeNode } from "../../types/TBlockScopeNode";
import { AppendState } from '../../enums/AppendState';
import { NodeType } from "../../enums/NodeType";
@@ -53,7 +53,7 @@ export class UnicodeArrayNode extends Node {
/**
* @param blockScopeNode
*/
public appendNode (blockScopeNode: BlockScopeNode): void {
public appendNode (blockScopeNode: TBlockScopeNode): void {
NodeUtils.prependNode(blockScopeNode.body, this.getNode());
}
@@ -2,7 +2,7 @@ import * as esprima from 'esprima';
import { INode } from "../../interfaces/nodes/INode";
import { BlockScopeNode } from "../../types/BlockScopeNode";
import { TBlockScopeNode } from "../../types/TBlockScopeNode";
import { AppendState } from "../../enums/AppendState";
@@ -53,7 +53,7 @@ export class UnicodeArrayRotateFunctionNode extends Node {
/**
* @param blockScopeNode
*/
public appendNode (blockScopeNode: BlockScopeNode): void {
public appendNode (blockScopeNode: TBlockScopeNode): void {
NodeUtils.insertNodeAtIndex(blockScopeNode.body, this.getNode(), 1);
}
@@ -3,4 +3,4 @@ import { ICatchClauseNode } from "../interfaces/nodes/ICatchClauseNode";
import { IFunctionNode } from "../interfaces/nodes/IFunctionNode";
import { IProgramNode } from "../interfaces/nodes/IProgramNode";
export type BlockScopeNode = IBlockStatementNode|ICatchClauseNode|IFunctionNode|IProgramNode;
export type TBlockScopeNode = IBlockStatementNode|ICatchClauseNode|IFunctionNode|IProgramNode;
+5
View File
@@ -0,0 +1,5 @@
import { ICustomNode } from "../interfaces/ICustomNode";
import { INodeObfuscator } from "../interfaces/INodeObfuscator";
import { IOptions } from "../interfaces/IOptions";
export type TNodeObfuscator = (new (nodes: Map <string, ICustomNode>, options: IOptions) => INodeObfuscator);