TypeError when creating a SourceMapGenerator from a SourceMapConsumer of an index map
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 3.7k
- Forks
- 370
- PR merge metrics
- No merged PRs in 30d
Description
When calling SourceMapGenerator.fromSourceMap with a SourceMapConsumer for an index map, the following error is thrown:
TypeError: Cannot read property 'replace' of undefined
at Object.relative (C:\dev\scratch\source-map-test\node_modules\source-map\lib\util.js:255:17)
at C:\dev\scratch\source-map-test\node_modules\source-map\lib\source-map-generator.js:75:31
at Array.forEach (<anonymous>)
at Function.fromSourceMap (C:\dev\scratch\source-map-test\node_modules\source-map\lib\source-map-generator.js:72:32)
at test (C:\dev\scratch\source-map-test\test.js:17:52)
at <anonymous>
test.js
const sourcemap = require("source-map");
async function test() {
const map = {
file: "generated.js",
version: 3,
sections: [
{ offset: { column: 0, line: 0 }, map: {
file: "part.js",
version: 3,
sources: ["source.js"],
mappings: "",
names: []
} }
]
};
const consumer = await new sourcemap.SourceMapConsumer(map);
const generator = sourcemap.SourceMapGenerator.fromSourceMap(consumer); // TypeError
}
The error seems to be due to a strict inequality (!==) check on sourceRoot whereas all other checks against sourceRoot use loose inequality (!=).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with lib/source-map-generator.js around fromSourceMap and lib/util.js around relative, then reproduce the failure using the test.js example in the issue. Add a regression test for converting an index-map SourceMapConsumer, and consider the existing sourceRoot comparisons. Done means conversion no longer throws and the relevant tests pass.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 45/100