vercel / nft

Node.js dependency tracing utility
https://npmjs.com/@vercel/nft
MIT License
1.31k stars 136 forks source link

Improve performance of AST parse #418

Open styfle opened 4 months ago

styfle commented 4 months ago

We currently use acorn for parsing JS into the AST, however there are faster alternatives now.

One of the fastest, @swc/core, is used by Next.js so its perhaps possible to parse once and share the AST so that nft wouldn't need to parse again. However, this could lead to a major rewrite since the AST is not compatible.

Another alternative, hermes-parser, is used by React Native and should have the same AST format (ESTree) which might mean its a drop-in replacement for acorn.