How to use the catchClause function from babel-types
Find comprehensive JavaScript babel-types.catchClause code examples handpicked from public code repositorys.
254 255 256 257 258 259 260 261 262 263
`report`是处理异常的`handler`函数,实际运用的时候,应该开放给用户自定义。拿到`catch`里面的内容后,我们就可以根据`babel-types`去生成`catch`里面的内容了。 > 这里我是直接通过var temp = code的方式去生成一个函数表达式,然后来获取函数体里面的body节点,你当然也可以直接根据函数生成AST节点,然后去获取这个函数节点的body节点,不过你要考虑不同情况的函数定义,获取body的方式不同 ```js let catchClause = types.catchClause(types.identifier('error'), // 第一个值是我们生成的包含行列以及函数名的变量 // 第二个值是handler的内容 types.blockStatement( [infoDeclarator, catchBody.body[0]]
6
14
2
+ 23 other calls in file
10 11 12 13 14 15 16 17 18 19
(element.expression.callee.property.name == 'insertTimepoint' || element.expression.callee.property.name == 'insertBreakpoint') ); }; const catchClause = t.catchClause( t.identifier('e'), t.blockStatement( [ t.ifStatement(
2
5
3
+ 7 other calls in file
27 28 29 30 31 32 33 34 35 36
return; } // 把一个JS字符串转成一个AST节点 let catchStatement = template.statement('console.log(error)')(); let catchClause = types.catchClause(types.identifier('error'), types.blockStatement([catchStatement])); // node.body就是原来的函数里的语句,现在要放到try里面 let tryStatement = types.tryStatement(node.body, catchClause); // 新的函数方法名不变sum,参数不变 a,b var func = types.functionDeclaration(id, node.params, types.blockStatement([
0
0
0
GitHub: free-dev-gf/fe_build
96 97 98 99 100 101 102 103 104 105
), ]) ), ]); var catchClause = types.catchClause( types.identifier("error"), types.blockStatement([infoDeclaration].concat(catchBody.body)) ); var tryStatement = types.tryStatement(blockStatement, catchClause);
0
0
0
babel-types.identifier is the most popular function in babel-types (4076 examples)