From 62acebe844fe09de9737b55e454e163173fdc364 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hu=C3=A1ng=20J=C3=B9nli=C3=A0ng?= Date: Fri, 14 Jan 2022 15:43:51 -0500 Subject: [PATCH] add decoratorsVersion support to babel-standalone --- packages/babel-standalone/src/preset-stage-0.ts | 4 +++- packages/babel-standalone/src/preset-stage-1.ts | 4 +++- packages/babel-standalone/src/preset-stage-2.ts | 6 +++++- .../babel-standalone/test/preset-stage-1.test.js | 15 +++++++++++++++ 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/packages/babel-standalone/src/preset-stage-0.ts b/packages/babel-standalone/src/preset-stage-0.ts index 7add5af3e1..66a8f8a180 100644 --- a/packages/babel-standalone/src/preset-stage-0.ts +++ b/packages/babel-standalone/src/preset-stage-0.ts @@ -5,7 +5,8 @@ export default (_: any, opts: any = {}) => { const { loose = false, useBuiltIns = false, - decoratorsLegacy = false, + decoratorsLegacy, + decoratorsVersion, decoratorsBeforeExport, pipelineProposal, pipelineTopicToken, @@ -20,6 +21,7 @@ export default (_: any, opts: any = {}) => { loose, useBuiltIns, decoratorsLegacy, + decoratorsVersion, decoratorsBeforeExport, pipelineProposal, pipelineTopicToken, diff --git a/packages/babel-standalone/src/preset-stage-1.ts b/packages/babel-standalone/src/preset-stage-1.ts index 6fdf52daec..67a3ef3318 100644 --- a/packages/babel-standalone/src/preset-stage-1.ts +++ b/packages/babel-standalone/src/preset-stage-1.ts @@ -5,7 +5,8 @@ export default (_: any, opts: any = {}) => { const { loose = false, useBuiltIns = false, - decoratorsLegacy = false, + decoratorsLegacy, + decoratorsVersion, decoratorsBeforeExport, pipelineProposal, pipelineTopicToken, @@ -20,6 +21,7 @@ export default (_: any, opts: any = {}) => { loose, useBuiltIns, decoratorsLegacy, + decoratorsVersion, decoratorsBeforeExport, pipelineProposal, pipelineTopicToken, diff --git a/packages/babel-standalone/src/preset-stage-2.ts b/packages/babel-standalone/src/preset-stage-2.ts index 4d743659da..26f172b49b 100644 --- a/packages/babel-standalone/src/preset-stage-2.ts +++ b/packages/babel-standalone/src/preset-stage-2.ts @@ -6,6 +6,7 @@ export default (_: any, opts: any = {}) => { loose = false, useBuiltIns = false, decoratorsLegacy = false, + decoratorsVersion = "2018-09", decoratorsBeforeExport, pipelineProposal = "minimal", pipelineTopicToken = "%", @@ -17,7 +18,10 @@ export default (_: any, opts: any = {}) => { plugins: [ [ babelPlugins.proposalDecorators, - { legacy: decoratorsLegacy, decoratorsBeforeExport }, + { + version: decoratorsLegacy ? "legacy" : decoratorsVersion, + decoratorsBeforeExport, + }, ], [ babelPlugins.proposalPipelineOperator, diff --git a/packages/babel-standalone/test/preset-stage-1.test.js b/packages/babel-standalone/test/preset-stage-1.test.js index cbac884200..d8f2e11181 100644 --- a/packages/babel-standalone/test/preset-stage-1.test.js +++ b/packages/babel-standalone/test/preset-stage-1.test.js @@ -55,5 +55,20 @@ _ref = x, _ref;" _ref = x, _ref;" `); }); + it("should support decorators versioned 2021-12", () => { + const output = Babel.transform("@dec class C {}", { + plugins: [["external-helpers", { helperVersion: "7.100.0" }]], + presets: [ + [ + "stage-1", + { + decoratorsVersion: "2021-12", + decoratorsBeforeExport: false, + }, + ], + ], + }).code; + expect(output).toMatch("babelHelpers.applyDecs"); + }); }, );