Struct sourcemap::SourceMap [] [src]

pub struct SourceMap { /* fields omitted */ }

Represents a sourcemap in memory

This is always represents a regular "non-indexed" sourcemap. Particularly in case the from_reader method is used an index sourcemap will be rejected with an error on reading.

Methods

impl SourceMap
[src]

[src]

Creates a sourcemap from a reader over a JSON stream in UTF-8 format. Optionally a "garbage header" as defined by the sourcemap draft specification is supported. In case an indexed sourcemap is encountered an error is returned.

use sourcemap::SourceMap;
let input: &[_] = b"{
    \"version\":3,
    \"sources\":[\"coolstuff.js\"],
    \"names\":[\"x\",\"alert\"],
    \"mappings\":\"AAAA,GAAIA,GAAI,EACR,IAAIA,GAAK,EAAG,CACVC,MAAM\"
}";
let sm = SourceMap::from_reader(input).unwrap();

While sourcemaps objects permit some modifications, it's generally not possible to modify tokens after they have been added. For creating sourcemaps from scratch or for general operations for modifying a sourcemap have a look at the SourceMapBuilder.

[src]

Writes a sourcemap into a writer.

Note that this operation will generate an equivalent sourcemap to the one that was generated on load however there might be small differences in the generated JSON and layout. For instance sourceRoot will not be set as upon parsing of the sourcemap the sources will already be expanded.

let sm = SourceMap::from_reader(input).unwrap();
let mut output : Vec<u8> = vec![];
sm.to_writer(&mut output).unwrap();

[src]

Creates a sourcemap from a reader over a JSON byte slice in UTF-8 format. Optionally a "garbage header" as defined by the sourcemap draft specification is supported. In case an indexed sourcemap is encountered an error is returned.

use sourcemap::SourceMap;
let input: &[_] = b"{
    \"version\":3,
    \"sources\":[\"coolstuff.js\"],
    \"names\":[\"x\",\"alert\"],
    \"mappings\":\"AAAA,GAAIA,GAAI,EACR,IAAIA,GAAK,EAAG,CACVC,MAAM\"
}";
let sm = SourceMap::from_slice(input).unwrap();

[src]

Constructs a new sourcemap from raw components.

  • file: an optional filename of the sourcemap
  • tokens: a list of raw tokens
  • names: a vector of names
  • sources a vector of source filenames
  • sources_content optional source contents

[src]

Returns the embedded filename in case there is one.

[src]

Sets a new value for the file.

[src]

Looks up a token by its index.

[src]

Returns the number of tokens in the sourcemap.

Important traits for TokenIter<'a>
[src]

Returns an iterator over the tokens.

[src]

Looks up the closest token to a given line and column.

[src]

Given a location, name and minified source file resolve a minified name to an original function name.

This invokes some guesswork and requires access to the original minified source. This will not yield proper results for anonymous functions or functions that do not have clear function names. (For instance it's recommended that dotted function names are not passed to this function).

[src]

Returns the number of sources in the sourcemap.

[src]

Looks up a source for a specific index.

[src]

Sets a new source value for an index. This cannot add new sources.

This panics if a source is set that does not exist.

[src]

Iterates over all sources

[src]

Returns the sources content as source view.

[src]

Looks up the content for a source.

[src]

Sets source contents for a source.

[src]

Iterates over all source contents

[src]

Returns an iterator over the names.

[src]

Returns the number of names in the sourcemap.

[src]

Returns true if there are any names in the map.

[src]

Looks up a name for a specific index.

[src]

Removes all names from the sourcemap.

[src]

Returns the number of items in the index

[src]

Returns the number of items in the index

[src]

This rewrites the sourcemap accoridng to the provided rewrite options.

The default behavior is to just deduplicate the sourcemap, something that automatically takes place. This for instance can be used to slightly compress sourcemaps if certain data is not wanted.

use sourcemap::{SourceMap, RewriteOptions};
let sm = SourceMap::from_slice(input).unwrap();
let new_sm = sm.rewrite(&RewriteOptions {
    with_names: false,
    ..Default::default()
});

Trait Implementations

Auto Trait Implementations

impl !Send for SourceMap

impl !Sync for SourceMap