Laptop-Thing/web/node_modules/esrap/README.md
2024-11-27 12:35:48 -05:00

58 lines
1.2 KiB
Markdown

# esrap
Parse in reverse. AST goes in, code comes out.
## Usage
```js
import { print } from 'esrap';
const { code, map } = print({
type: 'Program',
body: [
{
type: 'ExpressionStatement',
expression: {
callee: {
type: 'Identifier',
name: 'alert'
},
arguments: [
{
type: 'Literal',
value: 'hello world!'
}
]
}
}
]
});
console.log(code); // alert('hello world!');
```
If the nodes of the input AST have `loc` properties (e.g. the AST was generated with [`acorn`](https://github.com/acornjs/acorn/tree/master/acorn/#interface) with the `locations` option set), sourcemap mappings will be created.
## Options
You can pass information that will be added to the resulting sourcemap (note that the AST is assumed to come from a single file):
```js
const { code, map } = print(ast, {
sourceMapSource: 'input.js',
sourceMapContent: fs.readFileSync('input.js', 'utf-8')
});
```
## Why not just use Prettier?
Because it's ginormous.
## Developing
This repo uses [Bun](https://bun.sh/). Once it's installed, do `bun install` to install dependencies, and `bun test` to run the tests.
## License
[MIT](LICENSE)