From 00869147d3ac62db323cdf2a06cc8cc17dcdd1f3 Mon Sep 17 00:00:00 2001 From: Chen Yangjian <252317+cyjake@users.noreply.github.com> Date: Thu, 16 Mar 2023 17:38:06 +0800 Subject: [PATCH] fix(es/minifier): Accept `keep_fnames` and `keep_classnames` (#7090) --- crates/swc/src/config/issue-6996.json | 19 +++++++++++++++++++ crates/swc/src/config/mod.rs | 4 ++-- crates/swc/src/config/tests.rs | 6 ++++++ node-swc/__tests__/minify/issue_6996_test.mjs | 15 +++++++++++++++ 4 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 crates/swc/src/config/issue-6996.json create mode 100644 node-swc/__tests__/minify/issue_6996_test.mjs diff --git a/crates/swc/src/config/issue-6996.json b/crates/swc/src/config/issue-6996.json new file mode 100644 index 000000000000..7348210e6390 --- /dev/null +++ b/crates/swc/src/config/issue-6996.json @@ -0,0 +1,19 @@ +{ + "test": ".jsx?$", + "jsc": { + "parser": { + "syntax": "ecmascript", + "jsx": true, + "decorators": true, + "dynamicImport": true + }, + "transform": { + "react": { + "refresh": true + } + }, + "minify": { + "keep_fnames": true + } + } +} diff --git a/crates/swc/src/config/mod.rs b/crates/swc/src/config/mod.rs index 12567f86a242..ad147b7aecf9 100644 --- a/crates/swc/src/config/mod.rs +++ b/crates/swc/src/config/mod.rs @@ -920,10 +920,10 @@ pub struct JsMinifyOptions { #[serde(default)] pub ecma: TerserEcmaVersion, - #[serde(default)] + #[serde(default, alias = "keep_classnames")] pub keep_classnames: bool, - #[serde(default)] + #[serde(default, alias = "keep_fnames")] pub keep_fnames: bool, #[serde(default)] diff --git a/crates/swc/src/config/tests.rs b/crates/swc/src/config/tests.rs index dbf2f96099c5..47411a88adfd 100644 --- a/crates/swc/src/config/tests.rs +++ b/crates/swc/src/config/tests.rs @@ -26,3 +26,9 @@ fn jsonc() { let rc = parse_swcrc(include_str!("jsonc.json")).expect("failed to parse"); dbg!(&rc); } + +#[test] +fn issue_6996() { + let rc = parse_swcrc(include_str!("issue-6996.json")).expect("failed to parse"); + dbg!(&rc); +} diff --git a/node-swc/__tests__/minify/issue_6996_test.mjs b/node-swc/__tests__/minify/issue_6996_test.mjs new file mode 100644 index 000000000000..0272ffbfa29c --- /dev/null +++ b/node-swc/__tests__/minify/issue_6996_test.mjs @@ -0,0 +1,15 @@ +import swc from "../../.."; + +it("should not throw when keep_fnames is on", async () => { + async function minify() { + const { code } = await swc.transform('function Foo() {}', { + jsc: { + minify: { + keep_fnames: true, + }, + }, + }); + return code; + } + await expect(minify()).resolves.toEqual('function Foo() {}\n'); +});