From 15f2f171ab13b224757ca43483a456e409f12a0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hu=C3=A1ng=20J=C3=B9nli=C3=A0ng?= Date: Wed, 28 Jul 2021 15:45:30 -0400 Subject: [PATCH] feat: support hack pipeline in `@babel/standalone` (#13555) --- .../babel-standalone/src/preset-stage-0.ts | 4 +- .../babel-standalone/src/preset-stage-1.ts | 6 ++- .../test/preset-stage-1.test.js | 40 +++++++++++++++++++ 3 files changed, 48 insertions(+), 2 deletions(-) diff --git a/packages/babel-standalone/src/preset-stage-0.ts b/packages/babel-standalone/src/preset-stage-0.ts index 452991bcca..7add5af3e1 100644 --- a/packages/babel-standalone/src/preset-stage-0.ts +++ b/packages/babel-standalone/src/preset-stage-0.ts @@ -7,7 +7,8 @@ export default (_: any, opts: any = {}) => { useBuiltIns = false, decoratorsLegacy = false, decoratorsBeforeExport, - pipelineProposal = "minimal", + pipelineProposal, + pipelineTopicToken, importAssertionsVersion = "september-2020", } = opts; @@ -21,6 +22,7 @@ export default (_: any, opts: any = {}) => { decoratorsLegacy, decoratorsBeforeExport, pipelineProposal, + pipelineTopicToken, importAssertionsVersion, }, ], diff --git a/packages/babel-standalone/src/preset-stage-1.ts b/packages/babel-standalone/src/preset-stage-1.ts index 5448a3189c..aa47aa5eba 100644 --- a/packages/babel-standalone/src/preset-stage-1.ts +++ b/packages/babel-standalone/src/preset-stage-1.ts @@ -8,6 +8,7 @@ export default (_: any, opts: any = {}) => { decoratorsLegacy = false, decoratorsBeforeExport, pipelineProposal = "minimal", + pipelineTopicToken = "%", recordAndTupleSyntax: recordAndTupleSyntax = "hash", } = opts; @@ -23,7 +24,10 @@ export default (_: any, opts: any = {}) => { [babelPlugins.syntaxRecordAndTuple, { syntaxType: recordAndTupleSyntax }], babelPlugins.syntaxModuleBlocks, babelPlugins.proposalExportDefaultFrom, - [babelPlugins.proposalPipelineOperator, { proposal: pipelineProposal }], + [ + babelPlugins.proposalPipelineOperator, + { proposal: pipelineProposal, topicToken: pipelineTopicToken }, + ], babelPlugins.proposalDoExpressions, ], }; diff --git a/packages/babel-standalone/test/preset-stage-1.test.js b/packages/babel-standalone/test/preset-stage-1.test.js index 64b7c3f203..5279b60484 100644 --- a/packages/babel-standalone/test/preset-stage-1.test.js +++ b/packages/babel-standalone/test/preset-stage-1.test.js @@ -15,5 +15,45 @@ const require = createRequire(import.meta.url); }).code; expect(output).toBe("0.3m;"); }); + + it("should support hack pipeline", () => { + const output = Babel.transform("x |> %", { + presets: [ + [ + "stage-1", + { + pipelineProposal: "hack", + decoratorsBeforeExport: true, + }, + ], + ], + }).code; + expect(output).toMatchInlineSnapshot(` +"var _ref; + +_ref = x, _ref;" +`); + }); + + it("should support hack pipeline with `#` topic token", () => { + const output = Babel.transform("x |> #", { + presets: [ + [ + "stage-1", + { + pipelineProposal: "hack", + pipelineTopicToken: "#", + recordAndTupleSyntax: "bar", + decoratorsBeforeExport: true, + }, + ], + ], + }).code; + expect(output).toMatchInlineSnapshot(` +"var _ref; + +_ref = x, _ref;" +`); + }); }, );