requisite
Version:
A cosmic javascript bundler.
45 lines (40 loc) • 1.11 kB
JavaScript
// Generated by CoffeeScript 1.12.5
var SourceMapConsumer, traverse;
SourceMapConsumer = require('source-map').SourceMapConsumer;
traverse = require('estraverse').traverse;
module.exports = function(ast, map) {
map = new SourceMapConsumer(map);
traverse(ast, {
enter: function(node) {
var origEnd, origStart;
if (!(node.type && node.loc)) {
return;
}
origStart = map.originalPositionFor(node.loc.start);
if (!origStart.line) {
delete node.loc;
return;
}
origEnd = map.originalPositionFor(node.loc.end);
if (origEnd.line && (origEnd.line < origStart.line || origEnd.column < origStart.column)) {
origEnd.line = null;
}
node.loc = {
start: {
line: origStart.line,
column: origStart.column
},
source: origStart.source,
name: origStart.name
};
if (origEnd.line) {
node.loc.end = {
line: origEnd.line,
column: origEnd.column
};
}
}
});
return ast;
};
//# sourceMappingURL=sourcemap-to-ast.js.map