sourcemap
Source Edit Types
SourceMap = object
version*: int
sources*: seq[string]
names*: seq[string]
mappings*: string
file*: string
- Source Edit
Procs
func encode(values: seq[int]): string {....raises: [], tags: [], forbids: [].} - Encodes a series of integers into a VLQ base64 encoded string Source Edit
proc genSourceMap(source: string; outFile: string): SourceMap {.
...raises: [ValueError], tags: [], forbids: [].} - Source Edit
func parse(source: string): SourceInfo {....raises: [ValueError], tags: [],
forbids: [].} - Parses the JS output for embedded line info So it can convert those into a series of mappings Source Edit
func toSourceMap(info: SourceInfo; file: string): SourceMap {....raises: [],
tags: [], forbids: [].} - Convert from high level SourceInfo into the required SourceMap object Source Edit
Iterators
iterator tokenize(line: string): (int, string) {....raises: [], tags: [],
forbids: [].} - Goes through a line and splits it into Nim identifiers and normal JS code. This allows us to map mangled names back to Nim names. Yields (column, name). Doesn't yield anything but identifiers. See mangleName in compiler/jsgen.nim for how name mangling is done Source Edit