|
@@ -1,10 +1,5 @@
|
|
import { TNodeTransformer } from '../types/TNodeTransformer';
|
|
import { TNodeTransformer } from '../types/TNodeTransformer';
|
|
|
|
|
|
-import { ICustomNode } from '../interfaces/custom-nodes/ICustomNode';
|
|
|
|
-import { INodeTransformer } from '../interfaces/INodeTransformer';
|
|
|
|
-import { INodeTransformersFactory } from '../interfaces/INodeTransformersFactory';
|
|
|
|
-import { IOptions } from '../interfaces/IOptions';
|
|
|
|
-
|
|
|
|
import { NodeType } from '../enums/NodeType';
|
|
import { NodeType } from '../enums/NodeType';
|
|
|
|
|
|
import { CatchClauseObfuscator } from './node-obfuscators/CatchClauseObfuscator';
|
|
import { CatchClauseObfuscator } from './node-obfuscators/CatchClauseObfuscator';
|
|
@@ -16,12 +11,13 @@ import { MemberExpressionObfuscator } from './node-obfuscators/MemberExpressionO
|
|
import { MethodDefinitionObfuscator } from './node-obfuscators/MethodDefinitionObfuscator';
|
|
import { MethodDefinitionObfuscator } from './node-obfuscators/MethodDefinitionObfuscator';
|
|
import { ObjectExpressionObfuscator } from './node-obfuscators/ObjectExpressionObfuscator';
|
|
import { ObjectExpressionObfuscator } from './node-obfuscators/ObjectExpressionObfuscator';
|
|
import { VariableDeclarationObfuscator } from './node-obfuscators/VariableDeclarationObfuscator';
|
|
import { VariableDeclarationObfuscator } from './node-obfuscators/VariableDeclarationObfuscator';
|
|
|
|
+import { AbstractNodeTransformersFactory } from './AbstractNodeTransformersFactory';
|
|
|
|
|
|
-export class NodeObfuscatorsFactory implements INodeTransformersFactory {
|
|
|
|
|
|
+export class NodeObfuscatorsFactory extends AbstractNodeTransformersFactory {
|
|
/**
|
|
/**
|
|
* @type {Map<string, TNodeTransformer[]>}
|
|
* @type {Map<string, TNodeTransformer[]>}
|
|
*/
|
|
*/
|
|
- private static readonly nodeObfuscators: Map <string, TNodeTransformer[]> = new Map <string, TNodeTransformer[]> ([
|
|
|
|
|
|
+ protected readonly nodeTransformers: Map <string, TNodeTransformer[]> = new Map <string, TNodeTransformer[]> ([
|
|
[NodeType.ArrowFunctionExpression, [FunctionObfuscator]],
|
|
[NodeType.ArrowFunctionExpression, [FunctionObfuscator]],
|
|
[NodeType.ClassDeclaration, [FunctionDeclarationObfuscator]],
|
|
[NodeType.ClassDeclaration, [FunctionDeclarationObfuscator]],
|
|
[NodeType.CatchClause, [CatchClauseObfuscator]],
|
|
[NodeType.CatchClause, [CatchClauseObfuscator]],
|
|
@@ -37,40 +33,4 @@ export class NodeObfuscatorsFactory implements INodeTransformersFactory {
|
|
[NodeType.LabeledStatement, [LabeledStatementObfuscator]],
|
|
[NodeType.LabeledStatement, [LabeledStatementObfuscator]],
|
|
[NodeType.Literal, [LiteralObfuscator]]
|
|
[NodeType.Literal, [LiteralObfuscator]]
|
|
]);
|
|
]);
|
|
-
|
|
|
|
- /**
|
|
|
|
- * @type Map <string, AbstractCustomNode>
|
|
|
|
- */
|
|
|
|
- protected customNodes: Map <string, ICustomNode>;
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * @type {IOptions}
|
|
|
|
- */
|
|
|
|
- protected options: IOptions;
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * @param customNodes
|
|
|
|
- * @param options
|
|
|
|
- */
|
|
|
|
- constructor(customNodes: Map <string, ICustomNode>, options: IOptions) {
|
|
|
|
- this.customNodes = customNodes;
|
|
|
|
- this.options = options;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * @param nodeType
|
|
|
|
- * @returns {INodeTransformer[]}
|
|
|
|
- */
|
|
|
|
- public initializeNodeTransformers (nodeType: string): INodeTransformer[] {
|
|
|
|
- const nodeObfuscators: TNodeTransformer[] = NodeObfuscatorsFactory.nodeObfuscators.get(nodeType) || [];
|
|
|
|
- const instancesArray: INodeTransformer[] = [];
|
|
|
|
-
|
|
|
|
- nodeObfuscators.forEach((transformer: TNodeTransformer) => {
|
|
|
|
- instancesArray.push(
|
|
|
|
- new transformer(this.customNodes, this.options)
|
|
|
|
- );
|
|
|
|
- });
|
|
|
|
-
|
|
|
|
- return instancesArray;
|
|
|
|
- }
|
|
|
|
}
|
|
}
|