浏览代码

transformers as visitor: refactoring

sanex3339 8 年之前
父节点
当前提交
1eeb7f1b2a
共有 2 个文件被更改,包括 19 次插入34 次删除
  1. 9 14
      dist/index.js
  2. 10 20
      src/Obfuscator.ts

+ 9 - 14
dist/index.js

@@ -2538,29 +2538,24 @@ var Obfuscator = Obfuscator_1 = function () {
         value: function transformAstTree(astTree, nodeTransformers) {
             var _this2 = this;
 
-            var mergedVisitors = this.mergeTransformerVisitors(nodeTransformers.map(function (nodeTransformer) {
+            var visitors = nodeTransformers.map(function (nodeTransformer) {
                 return _this2.nodeTransformersFactory(nodeTransformer).getVisitor();
-            }));
-            estraverse.replace(astTree, mergedVisitors);
-            return astTree;
-        }
-    }, {
-        key: "mergeTransformerVisitors",
-        value: function mergeTransformerVisitors(visitors) {
-            var enterVisitor = this.getVisitorForDirection(visitors.filter(function (visitor) {
+            });
+            var enterVisitor = this.mergeVisitorsForDirection(visitors.filter(function (visitor) {
                 return visitor.enter !== undefined;
             }), VisitorDirection_1.VisitorDirection.enter);
-            var leaveVisitor = this.getVisitorForDirection(visitors.filter(function (visitor) {
+            var leaveVisitor = this.mergeVisitorsForDirection(visitors.filter(function (visitor) {
                 return visitor.leave !== undefined;
             }), VisitorDirection_1.VisitorDirection.leave);
-            return {
+            estraverse.replace(astTree, {
                 enter: enterVisitor,
                 leave: leaveVisitor
-            };
+            });
+            return astTree;
         }
     }, {
-        key: "getVisitorForDirection",
-        value: function getVisitorForDirection(visitors, direction) {
+        key: "mergeVisitorsForDirection",
+        value: function mergeVisitorsForDirection(visitors, direction) {
             if (!visitors.length) {
                 return null;
             }

+ 10 - 20
src/Obfuscator.ts

@@ -157,35 +157,25 @@ export class Obfuscator implements IObfuscator {
         astTree: ESTree.Program,
         nodeTransformers: NodeTransformers[]
     ): ESTree.Program {
-        const mergedVisitors: estraverse.Visitor = this.mergeTransformerVisitors(
-            nodeTransformers.map((nodeTransformer: NodeTransformers): estraverse.Visitor => {
+        const visitors: estraverse.Visitor[] = nodeTransformers
+            .map((nodeTransformer: NodeTransformers): estraverse.Visitor => {
                 return this.nodeTransformersFactory(nodeTransformer).getVisitor();
-            })
-        );
-
-        estraverse.replace(astTree, mergedVisitors);
-
-        return astTree;
-    }
-
-    /**
-     * @param visitors
-     * @return {estraverse.Visitor}
-     */
-    private mergeTransformerVisitors (visitors: estraverse.Visitor[]): estraverse.Visitor {
-        const enterVisitor: any = this.getVisitorForDirection(
+            });
+        const enterVisitor: any = this.mergeVisitorsForDirection(
             visitors.filter((visitor: estraverse.Visitor) => visitor.enter !== undefined),
             VisitorDirection.enter
         );
-        const leaveVisitor: any = this.getVisitorForDirection(
+        const leaveVisitor: any = this.mergeVisitorsForDirection(
             visitors.filter((visitor: estraverse.Visitor) => visitor.leave !== undefined),
             VisitorDirection.leave
         );
 
-        return {
+        estraverse.replace(astTree, {
             enter: enterVisitor,
             leave: leaveVisitor
-        };
+        });
+
+        return astTree;
     }
 
     /**
@@ -193,7 +183,7 @@ export class Obfuscator implements IObfuscator {
      * @param direction
      * @return {estraverse.Visitor | null}
      */
-    private getVisitorForDirection (
+    private mergeVisitorsForDirection (
         visitors: estraverse.Visitor[],
         direction: TVisitorDirection
     ): estraverse.Visitor | null {