From 4a159c2802c2dd6d330a4f41e1d21d08a2ae855b Mon Sep 17 00:00:00 2001 From: YuanboXue-Amber Date: Thu, 9 May 2024 15:54:08 +0200 Subject: [PATCH 1/3] change --- packages/babel-preset/src/transformPlugin.ts | 21 +++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/packages/babel-preset/src/transformPlugin.ts b/packages/babel-preset/src/transformPlugin.ts index 14314c0e3..34cd32ace 100644 --- a/packages/babel-preset/src/transformPlugin.ts +++ b/packages/babel-preset/src/transformPlugin.ts @@ -124,18 +124,15 @@ function buildCSSEntriesMetadata( ) { const classesBySlot: Record = Object.fromEntries( Object.entries(classnamesMapping).map(([slot, cssClassesMap]) => { - return [ - slot, - Object.values(cssClassesMap).reduce((acc, cssClasses) => { - if (typeof cssClasses === 'string') { - acc.push(cssClasses); - } else if (Array.isArray(cssClasses)) { - acc.push(...cssClasses); - } - - return acc; - }, []), - ]; + const uniqueClasses = new Set(); + Object.values(cssClassesMap).forEach(cssClasses => { + if (typeof cssClasses === 'string') { + uniqueClasses.add(cssClasses); + } else if (Array.isArray(cssClasses)) { + cssClasses.forEach(cssClass => uniqueClasses.add(cssClass)); + } + }); + return [slot, Array.from(uniqueClasses)]; }), ); From e510694d95327b09f37cc10e22e003ad832fa4b7 Mon Sep 17 00:00:00 2001 From: YuanboXue-Amber Date: Thu, 9 May 2024 15:54:32 +0200 Subject: [PATCH 2/3] Change files --- ...-babel-preset-b78df94c-317a-4354-9d27-a58f703e2c16.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 change/@griffel-babel-preset-b78df94c-317a-4354-9d27-a58f703e2c16.json diff --git a/change/@griffel-babel-preset-b78df94c-317a-4354-9d27-a58f703e2c16.json b/change/@griffel-babel-preset-b78df94c-317a-4354-9d27-a58f703e2c16.json new file mode 100644 index 000000000..d4c7b4086 --- /dev/null +++ b/change/@griffel-babel-preset-b78df94c-317a-4354-9d27-a58f703e2c16.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "fix: remove duplicated styles from the generated metadata", + "packageName": "@griffel/babel-preset", + "email": "yuanboxue@microsoft.com", + "dependentChangeType": "patch" +} From f7946d04196cf29ef541301ea8f0b8d35015278a Mon Sep 17 00:00:00 2001 From: Oleksandr Fediashov Date: Fri, 10 May 2024 12:06:13 +0200 Subject: [PATCH 3/3] add test --- .../babel-preset/src/transformPlugin.test.ts | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/packages/babel-preset/src/transformPlugin.test.ts b/packages/babel-preset/src/transformPlugin.test.ts index ae4d80a75..bcf7c8404 100644 --- a/packages/babel-preset/src/transformPlugin.test.ts +++ b/packages/babel-preset/src/transformPlugin.test.ts @@ -373,4 +373,39 @@ describe('babel preset', () => { } `); }); + + it('should generate metadata for makeResetStyles when configured', () => { + const code = ` +import { makeStyles } from '@griffel/react'; + +export const useStyles = makeStyles({ + root: { + paddingLeft: '4px', + paddingRight: '4px', + }, +}); + `; + + const babelFileResult = Babel.transformSync(code, { + babelrc: false, + configFile: false, + plugins: [[transformPlugin, { generateMetadata: true }]], + filename: 'test.js', + presets: ['@babel/typescript'], + }); + + expect(babelFileResult?.metadata).toMatchInlineSnapshot(` + Object { + cssEntries: Object { + useStyles: Object { + root: Array [ + .fycuoez{padding-left:4px;}, + .f8wuabp{padding-right:4px;}, + ], + }, + }, + cssResetEntries: Object {}, + } + `); + }); });