#js #prettify #source-map #javscript

prettify-js

A fast, robust but imperfect token-based JS code prettifier, written in Rust, that outputs JS source maps

1 unstable release

0.1.0 Jul 17, 2020

#1271 in Development tools

Download history 90/week @ 2023-08-16 103/week @ 2023-08-23 108/week @ 2023-08-30 168/week @ 2023-09-06 121/week @ 2023-09-13 87/week @ 2023-09-20 36/week @ 2023-09-27 100/week @ 2023-10-04 37/week @ 2023-10-11 120/week @ 2023-10-18 122/week @ 2023-10-25 67/week @ 2023-11-01 103/week @ 2023-11-08 52/week @ 2023-11-15 44/week @ 2023-11-22 87/week @ 2023-11-29

306 downloads per month
Used in 2 crates (via densky-core)

BSD-2-Clause

35KB
817 lines

prettify-js

A fast, robust but imperfect token-based JS code prettifier, written in Rust, that outputs JS source maps.

The code was mostly ported from Mozilla's pretty-fast. Instead of using Acorn to tokenize, we use RESS. Instead of using the source-map package to generate source maps, we use our own very minimal handwritten source-map emitter. The original pretty-fast code tries to avoid emitting more than one source-map record per pretty line; instead we emit one source-map record per token, because we sometimes care about code offsets within a pretty line.


lib.rs:

prettify-js is a tokenizer-based JS prettyprinter that generates source maps.

Example:

let (pretty, _) = prettify_js::prettyprint("function x(a){return a;}");
assert_eq!(pretty, "function x(a) {\n  return a;\n}\n");

Dependencies

~1.3–2MB
~42K SLoC