From 2282605b412c450e6816af8cd9502ea62510eea7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hu=C3=A1ng=20J=C3=B9nli=C3=A0ng?= Date: Tue, 1 Mar 2022 15:54:14 -0500 Subject: [PATCH] feat: add destructuring-private to standalone --- packages/babel-standalone/package.json | 1 + .../babel-standalone/scripts/pluginConfig.json | 1 + .../babel-standalone/src/generated/plugins.ts | 3 +++ .../babel-standalone/src/preset-stage-2.ts | 2 +- .../test/preset-stage-1.test.js | 14 ++++++++++++++ yarn.lock | 18 ++++++++++++++++++ 6 files changed, 38 insertions(+), 1 deletion(-) diff --git a/packages/babel-standalone/package.json b/packages/babel-standalone/package.json index 1efaffaa93de..83e66f2d3a2a 100644 --- a/packages/babel-standalone/package.json +++ b/packages/babel-standalone/package.json @@ -14,6 +14,7 @@ "@babel/plugin-proposal-class-properties": "workspace:^", "@babel/plugin-proposal-class-static-block": "workspace:^", "@babel/plugin-proposal-decorators": "workspace:^", + "@babel/plugin-proposal-destructuring-private": "workspace:^", "@babel/plugin-proposal-do-expressions": "workspace:^", "@babel/plugin-proposal-dynamic-import": "workspace:^", "@babel/plugin-proposal-export-default-from": "workspace:^", diff --git a/packages/babel-standalone/scripts/pluginConfig.json b/packages/babel-standalone/scripts/pluginConfig.json index 4225511093b8..11bb05332ab1 100644 --- a/packages/babel-standalone/scripts/pluginConfig.json +++ b/packages/babel-standalone/scripts/pluginConfig.json @@ -25,6 +25,7 @@ "proposal-class-properties", "proposal-class-static-block", "proposal-decorators", + "proposal-destructuring-private", "proposal-do-expressions", "proposal-dynamic-import", "proposal-export-default-from", diff --git a/packages/babel-standalone/src/generated/plugins.ts b/packages/babel-standalone/src/generated/plugins.ts index 724211513a81..55d24bbdad1f 100644 --- a/packages/babel-standalone/src/generated/plugins.ts +++ b/packages/babel-standalone/src/generated/plugins.ts @@ -28,6 +28,7 @@ import proposalAsyncGeneratorFunctions from "@babel/plugin-proposal-async-genera import proposalClassProperties from "@babel/plugin-proposal-class-properties"; import proposalClassStaticBlock from "@babel/plugin-proposal-class-static-block"; import proposalDecorators from "@babel/plugin-proposal-decorators"; +import proposalDestructuringPrivate from "@babel/plugin-proposal-destructuring-private"; import proposalDoExpressions from "@babel/plugin-proposal-do-expressions"; import proposalDynamicImport from "@babel/plugin-proposal-dynamic-import"; import proposalExportDefaultFrom from "@babel/plugin-proposal-export-default-from"; @@ -124,6 +125,7 @@ export { proposalClassProperties, proposalClassStaticBlock, proposalDecorators, + proposalDestructuringPrivate, proposalDoExpressions, proposalDynamicImport, proposalExportDefaultFrom, @@ -221,6 +223,7 @@ export const all: { [k: string]: any } = { "proposal-class-properties": proposalClassProperties, "proposal-class-static-block": proposalClassStaticBlock, "proposal-decorators": proposalDecorators, + "proposal-destructuring-private": proposalDestructuringPrivate, "proposal-do-expressions": proposalDoExpressions, "proposal-dynamic-import": proposalDynamicImport, "proposal-export-default-from": proposalExportDefaultFrom, diff --git a/packages/babel-standalone/src/preset-stage-2.ts b/packages/babel-standalone/src/preset-stage-2.ts index ca4e77c369d7..0ecb70562407 100644 --- a/packages/babel-standalone/src/preset-stage-2.ts +++ b/packages/babel-standalone/src/preset-stage-2.ts @@ -23,7 +23,7 @@ export default (_: any, opts: any = {}) => { decoratorsBeforeExport, }, ], - babelPlugins.syntaxDestructuringPrivate, + babelPlugins.proposalDestructuringPrivate, [ babelPlugins.proposalPipelineOperator, { proposal: pipelineProposal, topicToken: pipelineTopicToken }, diff --git a/packages/babel-standalone/test/preset-stage-1.test.js b/packages/babel-standalone/test/preset-stage-1.test.js index b40159b77035..6e763f9e949c 100644 --- a/packages/babel-standalone/test/preset-stage-1.test.js +++ b/packages/babel-standalone/test/preset-stage-1.test.js @@ -62,5 +62,19 @@ const require = createRequire(import.meta.url); }).code; expect(output).toMatch("babelHelpers.applyDecs"); }); + it("should support private destructuring", () => { + const output = Babel.transform("class C { #x; m({ #x: x}) {} }", { + plugins: [["external-helpers", { helperVersion: "7.100.0" }]], + presets: [ + [ + "stage-1", + { + decoratorsVersion: "2021-12", + }, + ], + ], + }).code; + expect(output).not.toContain("#x:"); + }); }, ); diff --git a/yarn.lock b/yarn.lock index 5809c9d37e35..c5941e89b391 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1328,6 +1328,23 @@ __metadata: languageName: unknown linkType: soft +"@babel/plugin-proposal-destructuring-private@workspace:^, @babel/plugin-proposal-destructuring-private@workspace:packages/babel-plugin-proposal-destructuring-private": + version: 0.0.0-use.local + resolution: "@babel/plugin-proposal-destructuring-private@workspace:packages/babel-plugin-proposal-destructuring-private" + dependencies: + "@babel/core": "workspace:^" + "@babel/helper-plugin-test-runner": "workspace:^" + "@babel/helper-plugin-utils": "workspace:^" + "@babel/plugin-syntax-destructuring-private": "workspace:^" + "@babel/plugin-transform-destructuring": "workspace:^" + "@babel/plugin-transform-parameters": "workspace:^" + "@babel/traverse": "workspace:^" + "@babel/types": "workspace:^" + peerDependencies: + "@babel/core": ^7.17.0 + languageName: unknown + linkType: soft + "@babel/plugin-proposal-do-expressions@workspace:^, @babel/plugin-proposal-do-expressions@workspace:packages/babel-plugin-proposal-do-expressions": version: 0.0.0-use.local resolution: "@babel/plugin-proposal-do-expressions@workspace:packages/babel-plugin-proposal-do-expressions" @@ -3598,6 +3615,7 @@ __metadata: "@babel/plugin-proposal-class-properties": "workspace:^" "@babel/plugin-proposal-class-static-block": "workspace:^" "@babel/plugin-proposal-decorators": "workspace:^" + "@babel/plugin-proposal-destructuring-private": "workspace:^" "@babel/plugin-proposal-do-expressions": "workspace:^" "@babel/plugin-proposal-dynamic-import": "workspace:^" "@babel/plugin-proposal-export-default-from": "workspace:^"