Spaces:
Sleeping
Sleeping
| # @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/ | |