This is a monorepo with packages to boost the DX of working with AST (using JavaScript programming language) related to:
- DX friendly.
- Cross-runtime friendly—👈 this also means ESM only.
- e18e friendly.
- No build step—meaning you can debug/edit source code inside
node_modules
as it is. - Extensive tests.
In order to work with AST, the following processes are recognized:
- Building programmatically the AST node(s), or an entire object.
- Parsing stringified code syntax into AST object.
- Traversing the AST object.
- Printing the AST object back into stringified code syntax.
Important
The following lists of packages contains what you can combine together - based on shared AST node interface format - aligned with ESTree specification.
Note
Not all of these packages are part of this monorepo.
Sometimes you need to do some code transformation...
Name | Languages | In this repository? |
---|---|---|
js-ast-build |
✅ | |
ts-ast-build |
✅ | |
svelte-ast-build |
✅ |
Getting the AST object from stringified code syntax.
Name | Languages | In this repository? |
---|---|---|
@swc/core |
❌ | |
svelte/compiler |
❌ |
In other words, walk on the AST object.
Name | Languages | In this repository? |
---|---|---|
zimmerframe |
❌ |
Print the AST object or nodes into stringified code syntax.
Name | Languages | In this repository? |
---|---|---|
esrap |
❌ | |
svelte-ast-print |
✅ |
If you can offer your time - refer to Contribution Guide.
Otherwise, consider sponsoring me.
Mateusz "xeho91" Kadlubowski