esbeautify
Version:
lightweight and blazing fast JavaScript code generator from an EScaya-compliant AST
94 lines (72 loc) • 2.06 kB
Markdown
<h1 align="center">ESBeautify</h1>
<p align="center"> Blazing fast JavaScript beautifier and minifier </p>
<br>
**WIP!**
## Features
* Generates JavaScript code up to [ECMAScript® 2021](https://tc39.es/ecma262/index.html)
* Generated output is 98 % identical to the input.
* Supports prettier options
* Supports code compression (*minification*)
* Supports JSON serializing
* Supports source map
* Supports incremental code generation
* Performance
* Optimized for use on handheld devices such as a mobile phone or tablet
* No backtracking
* Low memory usage
## API
`Esbeautify` uses `Escaya` to generat JavaScript code up to [ECMAScript® 2021](https://tc39.es/ecma262/index.html),
and does some code formatting based on your options.
### Options
```js
export interface Options {
// Enable ESNext features
next?: boolean;
// Enable location tracking
loc?: boolean;
// Disable Web compat
disableWebCompat?: boolean;
// Force strict mode
impliedStrict?: boolean;
// Specify the number of spaces per indentation-level
tabWidth?: number;
// Print semicolons at the ends of statements
semicolons?: boolean;
// Remove unnecessary whitespace
removeWhiteSpace?: boolean;
// Define file endings ('lf', 'crlf', or 'cr')
endOfLine?: string;
// Removes unnecessary whitespace, semicolons and line endings
minify?: boolean;
// Include parentheses around a sole arrow function parameter
arrowParens?: boolean;
// Enable the ability to omit superfluous parentheses
parentheses?: boolean;
// Print trailing commas wherever possible when multi-line
trailingCommas?: boolean;
// Use single quotes instead of double quotes
singleQuote?: boolean;
}
```
### Example usage:
```js
import { beutifyScript } from 'esbeutify';
generate(`[
a
= b
]
=
c`);
produces the string '[a = b] = c'.
```
This is how you minify
```js
import { beutifyScript } from 'esbeutify';
generate(`[
a
= b
]
=
c`, { minify: true });
produces the string '[a=b]=c'.
```