diff --git a/change/@griffel-babel-preset-1db4e3d4-8a02-4dca-ac78-a24a1dbaecb7.json b/change/@griffel-babel-preset-1db4e3d4-8a02-4dca-ac78-a24a1dbaecb7.json new file mode 100644 index 0000000000..ead4375ff4 --- /dev/null +++ b/change/@griffel-babel-preset-1db4e3d4-8a02-4dca-ac78-a24a1dbaecb7.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "fix: relax check in transform plugin", + "packageName": "@griffel/babel-preset", + "email": "olfedias@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/packages/babel-preset/__fixtures__/error-argument-type/fixture.js b/packages/babel-preset/__fixtures__/error-argument-type/fixture.js deleted file mode 100644 index da7863d92a..0000000000 --- a/packages/babel-preset/__fixtures__/error-argument-type/fixture.js +++ /dev/null @@ -1,4 +0,0 @@ -import { makeStyles } from '@griffel/react'; - -// This file is .js intentionally to avoid TS compiler errors -export const useStyles = makeStyles([]); diff --git a/packages/babel-preset/src/transformPlugin.test.ts b/packages/babel-preset/src/transformPlugin.test.ts index 7b31bb9222..5877d254dd 100644 --- a/packages/babel-preset/src/transformPlugin.test.ts +++ b/packages/babel-preset/src/transformPlugin.test.ts @@ -231,11 +231,6 @@ pluginTester({ }; }, }, - { - title: 'errors: throws on invalid argument type', - fixture: path.resolve(fixturesDir, 'error-argument-type', 'fixture.js'), - error: /function accepts only an object as a param/, - }, { title: 'errors: throws on invalid argument count', fixture: path.resolve(fixturesDir, 'error-argument-count', 'fixture.js'), diff --git a/packages/babel-preset/src/transformPlugin.ts b/packages/babel-preset/src/transformPlugin.ts index d0e1044443..b40970de66 100644 --- a/packages/babel-preset/src/transformPlugin.ts +++ b/packages/babel-preset/src/transformPlugin.ts @@ -32,7 +32,7 @@ function getDefinitionPathFromCallExpression( functionKind: FunctionKinds, callExpression: NodePath, ): NodePath { - const argumentPaths = callExpression.get('arguments') as NodePath[]; + const argumentPaths = callExpression.get('arguments'); const hasValidArguments = Array.isArray(argumentPaths) && argumentPaths.length === 1; if (!hasValidArguments) { @@ -41,11 +41,11 @@ function getDefinitionPathFromCallExpression( const definitionsPath = argumentPaths[0]; - if (!definitionsPath.isObjectExpression()) { - throw definitionsPath.buildCodeFrameError(`${functionKind}() function accepts only an object as a param`); + if (definitionsPath.isExpression() || definitionsPath.isSpreadElement()) { + return definitionsPath; } - return definitionsPath; + throw definitionsPath.buildCodeFrameError(`${functionKind}() function accepts only expressions and spreads`); } /**