#source-map #js #prettify #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

#1463 in Development tools

Download history 52/week @ 2024-11-13 46/week @ 2024-11-20 28/week @ 2024-11-27 29/week @ 2024-12-04 34/week @ 2024-12-11 15/week @ 2024-12-18 2/week @ 2024-12-25 9/week @ 2025-01-01 20/week @ 2025-01-08 7/week @ 2025-01-15 78/week @ 2025-01-22 256/week @ 2025-01-29 37/week @ 2025-02-05 67/week @ 2025-02-12 47/week @ 2025-02-19 39/week @ 2025-02-26

200 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–2.3MB
~44K SLoC