当前位置: 首页 > Web前端 > JavaScript

GoGoCode实现了20行代码,将try-catch

时间:2023-03-27 15:41:20 JavaScript

娣诲姞鍒版墍鏈夊紓姝ュ嚱鏁颁腑銆傛渶杩戠綉涓婃湁寰堝闈㈣瘯棰橀兘鏄湪鎵€鏈塧sync鍑芥暟涓姞鍏ry/catch銆傚熀鏈€濇兂鏄娇鐢╞abel銆傛兂鎯崇敤GoGoCode鏉ュ疄鐜癎oGoCode鏄竴涓熀浜嶢ST鐨凧avaScript/Typescript/HTML浠g爜杞崲宸ュ叿锛屼絾鏄浉姣斿悓绫伙紝瀹冩彁渚涗簡鏇寸洿瑙傜殑API锛氫竴缁勭被JQuery鐨凙PI鏉ユ煡鎵惧拰澶勭悊AST锛屼竴缁勪娇鐢ㄦ帴杩戞鍒欒〃杈惧紡鐨勮娉曟潵鍖归厤鍜屾浛鎹唬鐮侌煂圖emoimport$from'gogocode'functiontransform(source){constaddTry=(str)=>`{try${str}catch(e){console.log('鎶ュ憡閿欒',e)}}`constset=newSetreturn$(source).find('await$_$').each(item=>{//鏌ユ壘寮傛鍑芥暟鎴杢ry璇彞item=item=Array.from(item.parents()).map(e=>e.nodePath).find(e=>e.node?.async||e.node?.type=='TryStatement')//notfoundif(!item?.node.async)returnif(set.has(item.node))returnset.add(item.node)//鍦ㄥ嚱鏁颁綋涓坊鍔爐ry璇彞item.node.body=addTry($(item.node.body).generate())}).root().generate()}