Skip to content

Commit 7195078

Browse files
fix: source maps for ES modules have wrong offsets after conversion to AMD (#1214) (#1215)
1 parent fd5032e commit 7195078

File tree

2 files changed

+24
-7
lines changed

2 files changed

+24
-7
lines changed

lib/build/amodro-trace/read/es.js

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
1-
const transform = require('@babel/core').transform;
1+
const transformSync = require('@babel/core').transformSync;
22

3-
// use babel to translate native es module into AMD module
4-
module.exports = function es(fileName, fileContents) {
5-
return transform(fileContents, {
3+
/**
4+
* Use babel to translate native es module into AMD module
5+
* @param {string} fileName
6+
* @param {string} fileContents
7+
* @param {{} | boolean} inputSourceMap
8+
* @returns {{ code: string, map: string, ast: any }}
9+
*/
10+
module.exports = function es(fileName, fileContents, inputSourceMap) {
11+
return transformSync(fileContents, {
612
babelrc: false,
7-
plugins: [['@babel/plugin-transform-modules-amd', {loose: true}]]
8-
}).code;
13+
plugins: [['@babel/plugin-transform-modules-amd', {loose: true}]],
14+
inputSourceMap: inputSourceMap
15+
});
916
};

lib/build/bundled-source.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,17 @@ exports.BundledSource = class {
230230
} catch {
231231
// file is not in amd/cjs format, try native es module
232232
try {
233-
contents = esTransform(modulePath, this.contents);
233+
/** @type {{} | boolean} */
234+
let inputSourceMap = false;
235+
if (this.file.sourceMap) {
236+
inputSourceMap = typeof this.file.sourceMap === 'string' ? JSON.parse(this.file.sourceMap) : this.file.sourceMap;
237+
}
238+
const result = esTransform(modulePath, this.contents, inputSourceMap);
239+
240+
contents = result.code;
241+
if (result.map) {
242+
this.file.sourceMap = result.map; // save updated source map
243+
}
234244
} catch (e) {
235245
logger.error('Could not convert to AMD module, skipping ' + modulePath);
236246
logger.error('Error was: ' + e);

0 commit comments

Comments
 (0)