js-source-mapper

A rust library for consuming JavaScript source maps with a focus on performance. Supports Source Map revision 3.

Build Status Build status Coverage Status Crates.io MIT licensed

Documentation

Usage

toml [dependencies] js-source-mapper = "0.1.1"

```rust extern crate jssourcemapper;

use jssourcemapper::{Cache, consume};

fn main() { let cache = consume(r#"{ "version": 3, "file": "foo.js", "sources": ["source.js"], "names": ["name1", "name1", "name3"], "mappings": ";EAACA;;IAEEA;;MAEEE", "sourceRoot": "http://example.com" }"#).unwrap();

let mapping = cache.mappingforgenerated_position(2, 2); assert!(mapping.original.line == 1); assert!(mapping.original.column == 1); assert!(mapping.source == "source.js".into()); assert!(mapping.name == "name1".into()); } ```

Development

Fuzzing

To run cargo-fuzz on Windows, run the docker image specified in etc/docker. The following command is handy: docker run --rm -v <full_path_to_project_root>:/project -w /project cargo-fuzz cargo fuzz run fuzzer_script_1