forked from lix-project/lix-website
4.3 KiB
4.3 KiB
@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 and @jridgewell/gen-mapping implementations.
Installation
npm install @jridgewell/source-map
Usage
TODO
SourceMapConsumer
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
.
const smg = new SourceMapGenerator();
const smc = SourceMapConsumer.fromSourceMap(map);
smc.originalPositionFor({ line: 1, column: 0 });
SourceMapConsumer.prototype.originalPositionFor(generatedPosition)
const smc = new SourceMapConsumer(map);
smc.originalPositionFor({ line: 1, column: 0 });
SourceMapConsumer.prototype.mappings
const smc = new SourceMapConsumer(map);
smc.mappings; // AAAA
SourceMapConsumer.prototype.allGeneratedPositionsFor(originalPosition)
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.
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)
const smc = new SourceMapConsumer(map);
smc.generatedPositionFor({ line: 1, column: 5, source: "baz.ts" });
// { line: 2, column: 8 }
SourceMapConsumer.prototype.hasContentsOfAllSources()
const smc = new SourceMapConsumer(map);
smc.hasContentsOfAllSources();
// true
SourceMapConsumer.prototype.sourceContentFor(source[, returnNullOnMissing])
const smc = new SourceMapConsumer(map);
smc.generatedPositionFor("baz.ts");
// "export default ..."
SourceMapConsumer.prototype.version
Returns the source map's version
SourceMapGenerator
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
.
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)
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)
const smg = new SourceMapGenerator();
smg.setSourceContent('input.js', 'foobar');
SourceMapGenerator.prototype.toJSON()
const smg = new SourceMapGenerator();
smg.toJSON(); // { version: 3, names: [], sources: [], mappings: '' }
SourceMapGenerator.prototype.toString()
const smg = new SourceMapGenerator();
smg.toJSON(); // "{version:3,names:[],sources:[],mappings:''}"
SourceMapGenerator.prototype.toDecodedMap()
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
- Does not support the
SourceMapGenerator.prototype.applySourceMap()
- Not implemented