| # @jridgewell/source-map |
|
|
| > Packages `@jridgewell/trace-mapping` and `@jridgewell/gen-mapping` into the familiar source-map API |
|
|
| This isn't the full API, but it's the core functionality. This wraps |
| [@jridgewell/trace-mapping][trace-mapping] and [@jridgewell/gen-mapping][gen-mapping] |
| implementations. |
|
|
| ## Installation |
|
|
| ```sh |
| npm install @jridgewell/source-map |
| ``` |
|
|
| ## Usage |
|
|
| TODO |
|
|
| ### SourceMapConsumer |
|
|
| ```typescript |
| import { SourceMapConsumer } from '@jridgewell/source-map'; |
| const smc = new SourceMapConsumer({ |
| version: 3, |
| names: ['foo'], |
| sources: ['input.js'], |
| mappings: 'AAAAA', |
| }); |
| ``` |
|
|
| #### SourceMapConsumer.fromSourceMap(mapGenerator[, mapUrl]) |
|
|
| Transforms a `SourceMapGenerator` into a `SourceMapConsumer`. |
|
|
| ```typescript |
| const smg = new SourceMapGenerator(); |
| |
| const smc = SourceMapConsumer.fromSourceMap(map); |
| smc.originalPositionFor({ line: 1, column: 0 }); |
| ``` |
|
|
| #### SourceMapConsumer.prototype.originalPositionFor(generatedPosition) |
|
|
| ```typescript |
| const smc = new SourceMapConsumer(map); |
| smc.originalPositionFor({ line: 1, column: 0 }); |
| ``` |
|
|
| #### SourceMapConsumer.prototype.mappings |
|
|
| ```typescript |
| const smc = new SourceMapConsumer(map); |
| smc.mappings; // AAAA |
| ``` |
|
|
| #### SourceMapConsumer.prototype.allGeneratedPositionsFor(originalPosition) |
|
|
| ```typescript |
| const smc = new SourceMapConsumer(map); |
| smc.allGeneratedpositionsfor({ line: 1, column: 5, source: "baz.ts" }); |
| // [ |
| // { line: 2, column: 8 } |
| // ] |
| ``` |
|
|
| #### SourceMapConsumer.prototype.eachMapping(callback[, context[, order]]) |
|
|
| > This implementation currently does not support the "order" parameter. |
| > This function can only iterate in Generated order. |
|
|
| ```typescript |
| const smc = new SourceMapConsumer(map); |
| smc.eachMapping((mapping) => { |
| // { source: 'baz.ts', |
| // generatedLine: 4, |
| // generatedColumn: 5, |
| // originalLine: 4, |
| // originalColumn: 5, |
| // name: null } |
| }); |
| ``` |
|
|
| #### SourceMapConsumer.prototype.generatedPositionFor(originalPosition) |
|
|
| ```typescript |
| const smc = new SourceMapConsumer(map); |
| smc.generatedPositionFor({ line: 1, column: 5, source: "baz.ts" }); |
| // { line: 2, column: 8 } |
| ``` |
|
|
| #### SourceMapConsumer.prototype.hasContentsOfAllSources() |
|
|
| ```typescript |
| const smc = new SourceMapConsumer(map); |
| smc.hasContentsOfAllSources(); |
| // true |
| ``` |
|
|
| #### SourceMapConsumer.prototype.sourceContentFor(source[, returnNullOnMissing]) |
|
|
| ```typescript |
| const smc = new SourceMapConsumer(map); |
| smc.generatedPositionFor("baz.ts"); |
| // "export default ..." |
| ``` |
|
|
| #### SourceMapConsumer.prototype.version |
|
|
| Returns the source map's version |
|
|
| ### SourceMapGenerator |
|
|
| ```typescript |
| import { SourceMapGenerator } from '@jridgewell/source-map'; |
| const smg = new SourceMapGenerator({ |
| file: 'output.js', |
| sourceRoot: 'https://example.com/', |
| }); |
| ``` |
|
|
| #### SourceMapGenerator.fromSourceMap(map) |
|
|
| Transform a `SourceMapConsumer` into a `SourceMapGenerator`. |
|
|
| ```typescript |
| const smc = new SourceMapConsumer(); |
| const smg = SourceMapGenerator.fromSourceMap(smc); |
| ``` |
|
|
| #### SourceMapGenerator.prototype.applySourceMap(sourceMapConsumer[, sourceFile[, sourceMapPath]]) |
|
|
| > This method is not implemented yet |
|
|
| #### SourceMapGenerator.prototype.addMapping(mapping) |
|
|
| ```typescript |
| const smg = new SourceMapGenerator(); |
| smg.addMapping({ |
| generated: { line: 1, column: 0 }, |
| source: 'input.js', |
| original: { line: 1, column: 0 }, |
| name: 'foo', |
| }); |
| ``` |
|
|
| #### SourceMapGenerator.prototype.setSourceContent(sourceFile, sourceContent) |
|
|
| ```typescript |
| const smg = new SourceMapGenerator(); |
| smg.setSourceContent('input.js', 'foobar'); |
| ``` |
|
|
| #### SourceMapGenerator.prototype.toJSON() |
|
|
| ```typescript |
| const smg = new SourceMapGenerator(); |
| smg.toJSON(); // { version: 3, names: [], sources: [], mappings: '' } |
| ``` |
|
|
| #### SourceMapGenerator.prototype.toString() |
|
|
| ```typescript |
| const smg = new SourceMapGenerator(); |
| smg.toJSON(); // "{version:3,names:[],sources:[],mappings:''}" |
| ``` |
|
|
| #### SourceMapGenerator.prototype.toDecodedMap() |
|
|
| ```typescript |
| const smg = new SourceMapGenerator(); |
| smg.toDecodedMap(); // { version: 3, names: [], sources: [], mappings: [] } |
| ``` |
|
|
| ## Known differences with other implementations |
|
|
| This implementation has some differences with `source-map` and `source-map-js`. |
|
|
| - `SourceMapConsumer.prototype.eachMapping()` |
| - Does not support the `order` argument |
| - `SourceMapGenerator.prototype.applySourceMap()` |
| - Not implemented |
|
|
| [trace-mapping]: https://github.com/jridgewell/trace-mapping/ |
| [gen-mapping]: https://github.com/jridgewell/gen-mapping/ |
|
|