Skip to content

Commit

Permalink
Make tests pass
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolo-ribaudo committed Mar 1, 2020
1 parent 4074818 commit a8a0afa
Showing 1 changed file with 36 additions and 4 deletions.
40 changes: 36 additions & 4 deletions babel.config.js
Expand Up @@ -12,6 +12,8 @@ module.exports = function(api) {
};
const envOpts = Object.assign({}, envOptsNoTargets);

const compileDynamicImport = env === "test" || env === "development";

let convertESM = true;
let ignoreLib = true;
let includeRegeneratorRuntime = false;
Expand Down Expand Up @@ -107,10 +109,6 @@ module.exports = function(api) {
["@babel/plugin-proposal-nullish-coalescing-operator", { loose: true }],

convertESM ? "@babel/transform-modules-commonjs" : null,
// Until Jest supports native mjs, we must simulate it 馃し
env === "test" || env === "development"
? "@babel/plugin-proposal-dynamic-import"
: null,
].filter(Boolean),
overrides: [
{
Expand Down Expand Up @@ -141,6 +139,15 @@ module.exports = function(api) {
exclude: /regenerator-runtime/,
plugins: [["@babel/transform-runtime", transformRuntimeOptions]],
},
compileDynamicImport && {
// Until Jest supports native mjs, we must simulate it 馃し

test: "./packages/babel-core/src/config/files/import.js",
plugins: [
dynamicImportUrlToPath,
"@babel/plugin-proposal-dynamic-import",
],
},
].filter(Boolean),
};

Expand All @@ -152,3 +159,28 @@ module.exports = function(api) {

return config;
};

// import() uses file:// URLs for absolute imports, while require() uses
// file paths.
// Since this isn't handled by @babel/plugin-transform-modules-commonjs,
// we must handle it here.
// NOTE: This plugin must run before @babel/plugin-transform-modules-commonjs
function dynamicImportUrlToPath({ template }) {
return {
visitor: {
Program(path) {
path.traverse({
CallExpression(path) {
if (path.get("callee").isImport()) {
path.get("arguments.0").replaceWith(
template.expression.ast`
require("url").fileURLToPath(${path.node.arguments[0]})
`
);
}
},
});
},
},
};
}

0 comments on commit a8a0afa

Please sign in to comment.