Blame view

node_modules/recast/example/add-braces 956 Bytes
ce4c83ff   wxy   初始提交
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
  #!/usr/bin/env node
  
  var recast = require("recast");
  var types = recast.types;
  var n = types.namedTypes;
  var b = types.builders;
  
  require("recast").run(function(ast, callback) {
      recast.visit(ast, {
          visitIfStatement: function(path) {
              var stmt = path.node;
              stmt.consequent = fix(stmt.consequent);
  
              var alt = stmt.alternate;
              if (!n.IfStatement.check(alt)) {
                  stmt.alternate = fix(alt);
              }
  
              this.traverse(path);
          },
  
          visitWhileStatement: visitLoop,
          visitForStatement: visitLoop,
          visitForInStatement: visitLoop
      });
  
      callback(ast);
  });
  
  function visitLoop(path) {
      var loop = path.node;
      loop.body = fix(loop.body);
      this.traverse(path);
  }
  
  function fix(clause) {
      if (clause) {
          if (!n.BlockStatement.check(clause)) {
              clause = b.blockStatement([clause]);
          }
      }
  
      return clause;
  }