# sourcemap

Theme:

- Index

Search:
Group by:
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