#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

#1241 in Development tools

Download history 184/week @ 2024-03-04 102/week @ 2024-03-11 14/week @ 2024-03-18 66/week @ 2024-03-25 85/week @ 2024-04-01 13/week @ 2024-04-08 24/week @ 2024-04-15 86/week @ 2024-04-22 122/week @ 2024-04-29 37/week @ 2024-05-06 46/week @ 2024-05-13 60/week @ 2024-05-20 64/week @ 2024-05-27 54/week @ 2024-06-03 89/week @ 2024-06-10 37/week @ 2024-06-17

254 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
~41K SLoC