From e67b698cbde93866fc5764f33867b7ae26074dcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hu=C3=A1ng=20J=C3=B9nli=C3=A0ng?= Date: Fri, 14 Jan 2022 18:44:58 -0500 Subject: [PATCH] fix: throw when legacy and version are both specified also fix decoratorsBeforeExport error when version: "legacy" is specified --- .../src/index.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/babel-plugin-proposal-decorators/src/index.ts b/packages/babel-plugin-proposal-decorators/src/index.ts index 1a3b6c4a3d..42e2a097c8 100644 --- a/packages/babel-plugin-proposal-decorators/src/index.ts +++ b/packages/babel-plugin-proposal-decorators/src/index.ts @@ -12,10 +12,16 @@ import transformer2021_12 from "./transformer-2021-12"; export default declare((api, options) => { api.assertVersion(7); - const { legacy = false } = options; + let { legacy = false } = options; if (typeof legacy !== "boolean") { throw new Error("'legacy' must be a boolean."); } + if (version !== undefined && options.legacy !== undefined) { + throw new Error( + 'You can either specify `legacy: true` or `version: "legacy"` with decorators, not both.', + ); + } + legacy ||= version === "legacy"; const { decoratorsBeforeExport, version } = options; if (decoratorsBeforeExport === undefined) { @@ -23,7 +29,7 @@ export default declare((api, options) => { throw new Error( "The decorators plugin requires a 'decoratorsBeforeExport' option," + " whose value must be a boolean. If you want to use the legacy" + - " decorators semantics, you can set the 'legacy: true' option.", + " decorators semantics, you can set the `version: 'legacy'` option.", ); } } else { @@ -37,13 +43,7 @@ export default declare((api, options) => { } } - if (version === "legacy" || legacy) { - if (version !== undefined && legacy) { - throw new Error( - 'You can either specify `legacy: true` or `version: "legacy"` with decorators, not both.', - ); - } - + if (legacy) { return { name: "proposal-decorators", inherits: syntaxDecorators,