# @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/