185 lines
4.3 KiB
Markdown
185 lines
4.3 KiB
Markdown
# @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/
|