funcunit
Version:
<!-- @hide title
37 lines (29 loc) • 820 B
JavaScript
var SourceMapConsumer = require('source-map').SourceMapConsumer;
var traverse = require('estraverse').traverse;
module.exports = function sourceMapToAst(ast, map) {
map = new SourceMapConsumer(map);
traverse(ast, {
enter: function(node) {
if (!(node.type && node.loc)) return;
var origStart = map.originalPositionFor(node.loc.start);
var origEnd = map.originalPositionFor(node.loc.end);
if (!(origStart.line && origEnd.line)) {
delete node.loc;
return;
}
node.loc = {
start: {
line: origStart.line,
column: origStart.column
},
end: {
line: origEnd.line,
column: origEnd.column
},
source: origStart.source,
name: origStart.name
};
}
});
return ast;
};