Expand description
Hermes/React Native source map support.
React Native uses the Hermes JavaScript engine, and Metro (the RN bundler) produces source maps with Facebook-specific extensions:
x_facebook_sources— VLQ-encoded function scope mappings per sourcex_facebook_offsets— byte offsets for modules in a RAM bundlex_metro_module_paths— module paths for Metro bundles
This crate wraps a regular SourceMap and adds scope resolution for
Hermes function maps, similar to getsentry/rust-sourcemap’s SourceMapHermes.
§Examples
use srcmap_hermes::SourceMapHermes;
let json = r#"{
"version": 3,
"sources": ["input.js"],
"names": [],
"mappings": "AAAA",
"x_facebook_sources": [
[{"names": ["<global>", "foo"], "mappings": "AAA,CCA"}]
]
}"#;
let sm = SourceMapHermes::from_json(json).unwrap();
assert!(sm.get_function_map(0).is_some());Structs§
- Hermes
Function Map - Function map for a single source file. Contains function names and their scope boundaries.
- Hermes
Scope Offset - A scope offset in Hermes function maps. Represents the start position of a function scope in the generated code.
- Source
MapHermes - A Hermes-enhanced source map wrapping a regular SourceMap. Adds function scope information from Metro/Hermes extensions.
Enums§
- Hermes
Error - Errors that can occur when parsing a Hermes source map.