Fix moduleAttributesVersion errors with stage-0 preset in babel standalone (#11631)
* Fix moduleAttributesVersion errors with stage-0 preset in babel standalone * Add regression test for stage-0 not erroring on missing moduleattributes version * Remove moduleAttributesVersion from preset config
This commit is contained in:
parent
ddfdf00167
commit
8e41f26e12
@ -3,11 +3,11 @@ import { declare } from "@babel/helper-plugin-utils";
|
||||
export default declare((api, { version }) => {
|
||||
api.assertVersion(7);
|
||||
|
||||
if (typeof version !== "string" || version !== "apr-2020") {
|
||||
if (typeof version !== "string" || version !== "may-2020") {
|
||||
throw new Error(
|
||||
"The 'moduleAttributes' plugin requires a 'version' option," +
|
||||
" representing the last proposal update. Currently, the" +
|
||||
" only supported value is 'apr-2020'.",
|
||||
" only supported value is 'may-2020'.",
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -1,38 +1,48 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>babel-standalone example</title>
|
||||
</head>
|
||||
<body>
|
||||
Input:
|
||||
<textarea id="input" style="width: 100%" rows="10">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>babel-standalone example</title>
|
||||
</head>
|
||||
<body>
|
||||
Input:
|
||||
<textarea id="input" style="width: 100%" rows="10">
|
||||
const getMessage = () => 'Hello World';
|
||||
const someDiv = <div>{getMessage()}</div>;
|
||||
</textarea>
|
||||
</textarea
|
||||
>
|
||||
|
||||
Transformed code using Babel <strong id="version"></strong>:
|
||||
<pre id="output">Loading...</pre>
|
||||
Transformed code using Babel <strong id="version"></strong>:
|
||||
<pre id="output">Loading...</pre>
|
||||
|
||||
<script src="../babel.js"></script>
|
||||
<script>
|
||||
console.log('Babel =', Babel);
|
||||
document.getElementById('version').innerHTML = Babel.version;
|
||||
var inputEl = document.getElementById('input');
|
||||
var outputEl = document.getElementById('output');
|
||||
<script src="../babel.js"></script>
|
||||
<script>
|
||||
console.log("Babel =", Babel);
|
||||
document.getElementById("version").innerHTML = Babel.version;
|
||||
var inputEl = document.getElementById("input");
|
||||
var outputEl = document.getElementById("output");
|
||||
|
||||
function transform() {
|
||||
try {
|
||||
outputEl.innerHTML = Babel.transform(inputEl.value, {
|
||||
presets: ['es2015', 'react', 'stage-0']
|
||||
}).code;
|
||||
} catch (ex) {
|
||||
outputEl.innerHTML = 'ERROR: ' + ex.message;
|
||||
function transform() {
|
||||
try {
|
||||
outputEl.innerHTML = Babel.transform(inputEl.value, {
|
||||
presets: [
|
||||
"es2015",
|
||||
"react",
|
||||
[
|
||||
"stage-0",
|
||||
{
|
||||
decoratorsBeforeExport: false,
|
||||
},
|
||||
],
|
||||
],
|
||||
}).code;
|
||||
} catch (ex) {
|
||||
outputEl.innerHTML = "ERROR: " + ex.message;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
inputEl.addEventListener('keyup', transform, false);
|
||||
transform();
|
||||
</script>
|
||||
</body>
|
||||
inputEl.addEventListener("keyup", transform, false);
|
||||
transform();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@ -9,6 +9,7 @@ export default (_: any, opts: Object = {}) => {
|
||||
decoratorsLegacy = false,
|
||||
decoratorsBeforeExport,
|
||||
pipelineProposal = "minimal",
|
||||
moduleAttributesVersion = "may-2020",
|
||||
} = opts;
|
||||
|
||||
return {
|
||||
@ -21,6 +22,7 @@ export default (_: any, opts: Object = {}) => {
|
||||
decoratorsLegacy,
|
||||
decoratorsBeforeExport,
|
||||
pipelineProposal,
|
||||
moduleAttributesVersion,
|
||||
},
|
||||
],
|
||||
],
|
||||
|
||||
@ -203,6 +203,13 @@
|
||||
Babel.transform("/a*/u", { presets: ["es2015"] }),
|
||||
).not.toThrow();
|
||||
});
|
||||
it("#11628 - supports stage-0 passing moduleAttributesVersion to stage-1", () => {
|
||||
expect(() =>
|
||||
Babel.transform("const getMessage = () => 'Hello World'", {
|
||||
presets: [["stage-0", { decoratorsBeforeExport: false }]],
|
||||
}),
|
||||
).not.toThrow();
|
||||
});
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user