From d855f9d60c896948df64b58358fe0af68116f688 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Tue, 16 Aug 2022 15:08:31 +0200 Subject: [PATCH] [parser] Make `decoratorsBeforeExport` default to `false` (#14695) --- packages/babel-parser/src/plugin-utils.ts | 12 ++++-------- .../options.json | 2 +- .../decorators/class-property/options.json | 2 +- .../decorators/compued-property/options.json | 2 +- .../decoratorsBeforeExport-required/input.js | 0 .../decoratorsBeforeExport-required/options.json | 4 ---- .../decorators/no-object-methods/options.json | 9 +-------- .../experimental/decorators/no-semi/options.json | 11 ++--------- .../fixtures/experimental/decorators/options.json | 2 +- .../options.json | 2 +- .../decorators/private-property/options.json | 2 +- .../decorators/restricted-1/options.json | 11 ++--------- .../decorators/restricted-2/options.json | 11 ++--------- .../options.json | 2 +- .../options.json | 2 +- .../options.json | 2 +- .../options.json | 2 +- .../options.json | 2 +- .../options.json | 2 +- .../declare-after-decorators/options.json | 2 +- .../declare-before-decorators/options.json | 2 +- 21 files changed, 25 insertions(+), 61 deletions(-) delete mode 100644 packages/babel-parser/test/fixtures/experimental/decorators/decoratorsBeforeExport-required/input.js delete mode 100644 packages/babel-parser/test/fixtures/experimental/decorators/decoratorsBeforeExport-required/options.json diff --git a/packages/babel-parser/src/plugin-utils.ts b/packages/babel-parser/src/plugin-utils.ts index cc5943462116..f21f4a7339cd 100644 --- a/packages/babel-parser/src/plugin-utils.ts +++ b/packages/babel-parser/src/plugin-utils.ts @@ -87,14 +87,10 @@ export function validatePlugins(plugins: PluginList) { "decorators", "decoratorsBeforeExport", ); - if (decoratorsBeforeExport == null) { - throw new Error( - "The 'decorators' plugin requires a 'decoratorsBeforeExport' option," + - " whose value must be a boolean. If you are migrating from" + - " Babylon/Babel 6 or want to use the old decorators proposal, you" + - " should use the 'decorators-legacy' plugin instead of 'decorators'.", - ); - } else if (typeof decoratorsBeforeExport !== "boolean") { + if ( + decoratorsBeforeExport != null && + typeof decoratorsBeforeExport !== "boolean" + ) { throw new Error("'decoratorsBeforeExport' must be a boolean."); } } diff --git a/packages/babel-parser/test/fixtures/es2022/class-properties/arguments-in-nested-class-decorator-call-expression/options.json b/packages/babel-parser/test/fixtures/es2022/class-properties/arguments-in-nested-class-decorator-call-expression/options.json index 6c9cc72327dc..d760b0afda2a 100644 --- a/packages/babel-parser/test/fixtures/es2022/class-properties/arguments-in-nested-class-decorator-call-expression/options.json +++ b/packages/babel-parser/test/fixtures/es2022/class-properties/arguments-in-nested-class-decorator-call-expression/options.json @@ -1,3 +1,3 @@ { - "plugins": [["decorators", { "decoratorsBeforeExport": false }]] + "plugins": ["decorators"] } diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/class-property/options.json b/packages/babel-parser/test/fixtures/experimental/decorators/class-property/options.json index 6c9cc72327dc..d760b0afda2a 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/class-property/options.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/class-property/options.json @@ -1,3 +1,3 @@ { - "plugins": [["decorators", { "decoratorsBeforeExport": false }]] + "plugins": ["decorators"] } diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/compued-property/options.json b/packages/babel-parser/test/fixtures/experimental/decorators/compued-property/options.json index 6c9cc72327dc..d760b0afda2a 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/compued-property/options.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/compued-property/options.json @@ -1,3 +1,3 @@ { - "plugins": [["decorators", { "decoratorsBeforeExport": false }]] + "plugins": ["decorators"] } diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/decoratorsBeforeExport-required/input.js b/packages/babel-parser/test/fixtures/experimental/decorators/decoratorsBeforeExport-required/input.js deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/decoratorsBeforeExport-required/options.json b/packages/babel-parser/test/fixtures/experimental/decorators/decoratorsBeforeExport-required/options.json deleted file mode 100644 index 3a1e80661a8f..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/decorators/decoratorsBeforeExport-required/options.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "plugins": ["decorators"], - "throws": "The 'decorators' plugin requires a 'decoratorsBeforeExport' option, whose value must be a boolean. If you are migrating from Babylon/Babel 6 or want to use the old decorators proposal, you should use the 'decorators-legacy' plugin instead of 'decorators'." -} diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/no-object-methods/options.json b/packages/babel-parser/test/fixtures/experimental/decorators/no-object-methods/options.json index cab2cc563643..d760b0afda2a 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/no-object-methods/options.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/no-object-methods/options.json @@ -1,10 +1,3 @@ { - "plugins": [ - [ - "decorators", - { - "decoratorsBeforeExport": false - } - ] - ] + "plugins": ["decorators"] } diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/no-semi/options.json b/packages/babel-parser/test/fixtures/experimental/decorators/no-semi/options.json index 82f0c2e573ff..398f99f885f4 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/no-semi/options.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/no-semi/options.json @@ -1,11 +1,4 @@ { - "plugins": [ - [ - "decorators", - { - "decoratorsBeforeExport": false - } - ] - ], + "plugins": ["decorators"], "throws": "Decorators must not be followed by a semicolon. (2:5)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/options.json b/packages/babel-parser/test/fixtures/experimental/decorators/options.json index 6c9cc72327dc..d760b0afda2a 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/options.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/options.json @@ -1,3 +1,3 @@ { - "plugins": [["decorators", { "decoratorsBeforeExport": false }]] + "plugins": ["decorators"] } diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/parenthesized-createParenthesizedExpressions/options.json b/packages/babel-parser/test/fixtures/experimental/decorators/parenthesized-createParenthesizedExpressions/options.json index 50270cedd0d4..fe35ff98fac8 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/parenthesized-createParenthesizedExpressions/options.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/parenthesized-createParenthesizedExpressions/options.json @@ -1,4 +1,4 @@ { - "plugins": [["decorators", { "decoratorsBeforeExport": false }]], + "plugins": ["decorators"], "createParenthesizedExpressions": true } diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/private-property/options.json b/packages/babel-parser/test/fixtures/experimental/decorators/private-property/options.json index 6c9cc72327dc..d760b0afda2a 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/private-property/options.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/private-property/options.json @@ -1,3 +1,3 @@ { - "plugins": [["decorators", { "decoratorsBeforeExport": false }]] + "plugins": ["decorators"] } diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/restricted-1/options.json b/packages/babel-parser/test/fixtures/experimental/decorators/restricted-1/options.json index adcec8cd5066..3b61df5a8e53 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/restricted-1/options.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/restricted-1/options.json @@ -1,11 +1,4 @@ { - "plugins": [ - [ - "decorators", - { - "decoratorsBeforeExport": false - } - ] - ], + "plugins": ["decorators"], "throws": "Leading decorators must be attached to a class declaration. (1:6)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/restricted-2/options.json b/packages/babel-parser/test/fixtures/experimental/decorators/restricted-2/options.json index adcec8cd5066..3b61df5a8e53 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/restricted-2/options.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/restricted-2/options.json @@ -1,11 +1,4 @@ { - "plugins": [ - [ - "decorators", - { - "decoratorsBeforeExport": false - } - ] - ], + "plugins": ["decorators"], "throws": "Leading decorators must be attached to a class declaration. (1:6)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/hack-double-at-proposal-class-decorator-with-bare-identifier/options.json b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/hack-double-at-proposal-class-decorator-with-bare-identifier/options.json index d892ab069acf..ea4d11453e94 100644 --- a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/hack-double-at-proposal-class-decorator-with-bare-identifier/options.json +++ b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/hack-double-at-proposal-class-decorator-with-bare-identifier/options.json @@ -1,6 +1,6 @@ { "plugins": [ ["pipelineOperator", { "proposal": "hack", "topicToken": "@@" }], - ["decorators", { "decoratorsBeforeExport": false }] + "decorators" ] } diff --git a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/hack-double-at-proposal-class-decorator-with-parenthesized-identifier/options.json b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/hack-double-at-proposal-class-decorator-with-parenthesized-identifier/options.json index d892ab069acf..ea4d11453e94 100644 --- a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/hack-double-at-proposal-class-decorator-with-parenthesized-identifier/options.json +++ b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/hack-double-at-proposal-class-decorator-with-parenthesized-identifier/options.json @@ -1,6 +1,6 @@ { "plugins": [ ["pipelineOperator", { "proposal": "hack", "topicToken": "@@" }], - ["decorators", { "decoratorsBeforeExport": false }] + "decorators" ] } diff --git a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/hack-double-at-proposal-class-decorator-with-parenthesized-topic/options.json b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/hack-double-at-proposal-class-decorator-with-parenthesized-topic/options.json index d892ab069acf..ea4d11453e94 100644 --- a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/hack-double-at-proposal-class-decorator-with-parenthesized-topic/options.json +++ b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/hack-double-at-proposal-class-decorator-with-parenthesized-topic/options.json @@ -1,6 +1,6 @@ { "plugins": [ ["pipelineOperator", { "proposal": "hack", "topicToken": "@@" }], - ["decorators", { "decoratorsBeforeExport": false }] + "decorators" ] } diff --git a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/hack-double-caret-proposal-class-decorator-with-bare-identifier/options.json b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/hack-double-caret-proposal-class-decorator-with-bare-identifier/options.json index 5ba6fd121df6..75710d4eb8ea 100644 --- a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/hack-double-caret-proposal-class-decorator-with-bare-identifier/options.json +++ b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/hack-double-caret-proposal-class-decorator-with-bare-identifier/options.json @@ -1,6 +1,6 @@ { "plugins": [ ["pipelineOperator", { "proposal": "hack", "topicToken": "^^" }], - ["decorators", { "decoratorsBeforeExport": false }] + "decorators" ] } diff --git a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/hack-double-caret-proposal-class-decorator-with-parenthesized-identifier/options.json b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/hack-double-caret-proposal-class-decorator-with-parenthesized-identifier/options.json index 5ba6fd121df6..75710d4eb8ea 100644 --- a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/hack-double-caret-proposal-class-decorator-with-parenthesized-identifier/options.json +++ b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/hack-double-caret-proposal-class-decorator-with-parenthesized-identifier/options.json @@ -1,6 +1,6 @@ { "plugins": [ ["pipelineOperator", { "proposal": "hack", "topicToken": "^^" }], - ["decorators", { "decoratorsBeforeExport": false }] + "decorators" ] } diff --git a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/hack-double-caret-proposal-class-decorator-with-parenthesized-topic/options.json b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/hack-double-caret-proposal-class-decorator-with-parenthesized-topic/options.json index 5ba6fd121df6..75710d4eb8ea 100644 --- a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/hack-double-caret-proposal-class-decorator-with-parenthesized-topic/options.json +++ b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/hack-double-caret-proposal-class-decorator-with-parenthesized-topic/options.json @@ -1,6 +1,6 @@ { "plugins": [ ["pipelineOperator", { "proposal": "hack", "topicToken": "^^" }], - ["decorators", { "decoratorsBeforeExport": false }] + "decorators" ] } diff --git a/packages/babel-parser/test/fixtures/flow/class-properties/declare-after-decorators/options.json b/packages/babel-parser/test/fixtures/flow/class-properties/declare-after-decorators/options.json index 4a1483574f95..35e8e1c8e684 100644 --- a/packages/babel-parser/test/fixtures/flow/class-properties/declare-after-decorators/options.json +++ b/packages/babel-parser/test/fixtures/flow/class-properties/declare-after-decorators/options.json @@ -1,4 +1,4 @@ { "sourceType": "module", - "plugins": ["flow", ["decorators", { "decoratorsBeforeExport": false }]] + "plugins": ["flow", "decorators"] } diff --git a/packages/babel-parser/test/fixtures/flow/class-properties/declare-before-decorators/options.json b/packages/babel-parser/test/fixtures/flow/class-properties/declare-before-decorators/options.json index 1d76e2c51d33..ad171938d789 100644 --- a/packages/babel-parser/test/fixtures/flow/class-properties/declare-before-decorators/options.json +++ b/packages/babel-parser/test/fixtures/flow/class-properties/declare-before-decorators/options.json @@ -1,5 +1,5 @@ { "sourceType": "module", - "plugins": ["flow", ["decorators", { "decoratorsBeforeExport": false }]], + "plugins": ["flow", "decorators"], "throws": "Unexpected token (2:10)" }