Skip to content

Commit

Permalink
Use the real sourcemap API and handle input sourcemaps - fixes T7259 (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
loganfsmyth authored and hzoo committed Sep 20, 2016
1 parent 8f6d4ae commit 46eb99b
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 19 deletions.
51 changes: 33 additions & 18 deletions packages/babel-cli/src/babel/file.js
Expand Up @@ -24,31 +24,35 @@ module.exports = function (commander, filenames, opts) {
let offset = 0;

_.each(results, function (result) {
let filename = result.filename || "stdout";
code += result.code + "\n";

if (result.map) {
let consumer = new sourceMap.SourceMapConsumer(result.map);

let sourceFilename = filename;
if (commander.outFile) {
sourceFilename = path.relative(path.dirname(commander.outFile), sourceFilename);
}
sourceFilename = slash(sourceFilename);

map._sources.add(sourceFilename);
map.setSourceContent(sourceFilename, result.actual);
let sources = new Set();

consumer.eachMapping(function (mapping) {
map._mappings.add({
generatedLine: mapping.generatedLine + offset,
generatedColumn: mapping.generatedColumn,
originalLine: mapping.source == null ? null : mapping.originalLine,
originalColumn: mapping.source == null ? null : mapping.originalColumn,
source: mapping.source == null ? null : sourceFilename
if (mapping.source != null) sources.add(mapping.source);

map.addMapping({
generated: {
line: mapping.generatedLine + offset,
column: mapping.generatedColumn,
},
source: mapping.source,
original: mapping.source == null ? null : {
line: mapping.originalLine,
column: mapping.originalColumn,
},
});
});

sources.forEach((source) => {
let content = consumer.sourceContentFor(source, true);
if (content !== null){
map.setSourceContent(source, content);
}
});

offset = code.split("\n").length;
}
});
Expand Down Expand Up @@ -93,7 +97,9 @@ module.exports = function (commander, filenames, opts) {
});

process.stdin.on("end", function () {
results.push(util.transform(commander.filename, code));
results.push(util.transform(commander.filename, code, {
sourceFileName: "stdin",
}));
output();
});
};
Expand All @@ -120,7 +126,16 @@ module.exports = function (commander, filenames, opts) {
_.each(_filenames, function (filename) {
if (util.shouldIgnore(filename)) return;

let data = util.compile(filename);
let sourceFilename = filename;
if (commander.outFile) {
sourceFilename = path.relative(path.dirname(commander.outFile), sourceFilename);
}
sourceFilename = slash(sourceFilename);

let data = util.compile(filename, {
sourceFileName: sourceFilename,
});

if (data.ignored) return;
results.push(data);
});
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 46eb99b

Please sign in to comment.