From 13af87cd3ba6403990b6b6f65646a2adb63df3ff Mon Sep 17 00:00:00 2001 From: Sosuke Suzuki Date: Wed, 4 Aug 2021 07:36:38 +0900 Subject: [PATCH] standalone: update `preset-stage-*` (#13476) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Move classStaticBlock to stage-3 * Remove stage-4 proposals * Move PrivatePropertyInObject * Remove options from preset-stage-3 * Move RecordAndTuple to stage-2 * Move ModuleBlocks to stage-2 * Undo breaking change Co-authored-by: Nicolò Ribaudo --- .../babel-standalone/src/preset-stage-1.ts | 12 ++++++---- .../babel-standalone/src/preset-stage-2.ts | 5 ++-- .../babel-standalone/src/preset-stage-3.ts | 24 ++++++++++--------- 3 files changed, 24 insertions(+), 17 deletions(-) diff --git a/packages/babel-standalone/src/preset-stage-1.ts b/packages/babel-standalone/src/preset-stage-1.ts index aa47aa5eba..ef4c1319f3 100644 --- a/packages/babel-standalone/src/preset-stage-1.ts +++ b/packages/babel-standalone/src/preset-stage-1.ts @@ -9,20 +9,24 @@ export default (_: any, opts: any = {}) => { decoratorsBeforeExport, pipelineProposal = "minimal", pipelineTopicToken = "%", - recordAndTupleSyntax: recordAndTupleSyntax = "hash", + recordAndTupleSyntax, } = opts; return { presets: [ [ presetStage2, - { loose, useBuiltIns, decoratorsLegacy, decoratorsBeforeExport }, + { + loose, + useBuiltIns, + decoratorsLegacy, + decoratorsBeforeExport, + recordAndTupleSyntax, + }, ], ], plugins: [ babelPlugins.syntaxDecimal, - [babelPlugins.syntaxRecordAndTuple, { syntaxType: recordAndTupleSyntax }], - babelPlugins.syntaxModuleBlocks, babelPlugins.proposalExportDefaultFrom, [ babelPlugins.proposalPipelineOperator, diff --git a/packages/babel-standalone/src/preset-stage-2.ts b/packages/babel-standalone/src/preset-stage-2.ts index 2c4610116e..3809b5f765 100644 --- a/packages/babel-standalone/src/preset-stage-2.ts +++ b/packages/babel-standalone/src/preset-stage-2.ts @@ -7,19 +7,20 @@ export default (_: any, opts: any = {}) => { useBuiltIns = false, decoratorsLegacy = false, decoratorsBeforeExport, + recordAndTupleSyntax = "hash", } = opts; return { presets: [[presetStage3, { loose, useBuiltIns }]], plugins: [ - babelPlugins.proposalClassStaticBlock, [ babelPlugins.proposalDecorators, { legacy: decoratorsLegacy, decoratorsBeforeExport }, ], babelPlugins.proposalFunctionSent, - babelPlugins.proposalPrivatePropertyInObject, babelPlugins.proposalThrowExpressions, + [babelPlugins.syntaxRecordAndTuple, { syntaxType: recordAndTupleSyntax }], + babelPlugins.syntaxModuleBlocks, ], }; }; diff --git a/packages/babel-standalone/src/preset-stage-3.ts b/packages/babel-standalone/src/preset-stage-3.ts index 4fa70155f0..b7d84d0251 100644 --- a/packages/babel-standalone/src/preset-stage-3.ts +++ b/packages/babel-standalone/src/preset-stage-3.ts @@ -1,15 +1,14 @@ import * as babelPlugins from "./generated/plugins"; -export default (_: any, opts: any) => { - let loose = false; +export default (_: any, { loose = false } = {}) => { + const plugins = [ + babelPlugins.syntaxImportAssertions, + babelPlugins.proposalClassStaticBlock, + ]; - if (opts !== undefined) { - if (opts.loose !== undefined) loose = opts.loose; - } - - return { - plugins: [ - babelPlugins.syntaxImportAssertions, + if (!process.env.BABEL_8_BREAKING) { + // These are Stage 4 + plugins.push( babelPlugins.syntaxImportMeta, babelPlugins.syntaxTopLevelAwait, babelPlugins.proposalExportNamespaceFrom, @@ -20,6 +19,9 @@ export default (_: any, opts: any) => { babelPlugins.proposalJsonStrings, babelPlugins.proposalNumericSeparator, [babelPlugins.proposalPrivateMethods, { loose }], - ], - }; + babelPlugins.proposalPrivatePropertyInObject, + ); + } + + return { plugins }; };