swc_sourcemap 10.0.0

Forked from https://github.com/getsentry/rust-sourcemap
Documentation
use swc_sourcemap::SourceMapBuilder;

#[test]
fn test_builder_into_sourcemap() {
    let mut builder = SourceMapBuilder::new(None);
    builder.set_source_root(Some("/foo/bar"));
    builder.add_source("baz.js".into());
    builder.add_name("x".into());
    builder.add_to_ignore_list(0);

    let sm = builder.into_sourcemap();
    assert_eq!(sm.get_source_root().map(|v| &**v), Some("/foo/bar"));
    assert_eq!(sm.get_source(0).map(|v| &**v), Some("/foo/bar/baz.js"));
    assert_eq!(sm.get_name(0).map(|v| &**v), Some("x"));

    let expected = br#"{"version":3,"sources":["baz.js"],"sourceRoot":"/foo/bar","names":["x"],"mappings":"","ignoreList":[0]}"#;
    let mut output: Vec<u8> = vec![];
    sm.to_writer(&mut output).unwrap();
    assert_eq!(output, expected);
}