@samitouri / QOS-React / commits / a1f157e9a9

[compiler][ez] Add validation for auto-deps config (#31813)

numRequiredArgs has to be more than 0 and the pass depends on that --

Jordan Brown committed Mar 3, 2025 at 14:39 UTC a1f157e9a9b7f90fce9d696add6cee04a6fb5260
2 files changed +19 -1
compiler/packages/babel-plugin-react-compiler/src/HIR/Environment.ts
+1 -1
@@ -285,7 +285,7 @@ const EnvironmentConfigSchema = z.object({
285 z.array(
286 z.object({
287 function: ExternalFunctionSchema,
288 - numRequiredArgs: z.number(),
288 + numRequiredArgs: z.number().min(1, 'numRequiredArgs must be > 0'),
289 }),
290 ),
291 )
compiler/packages/babel-plugin-react-compiler/src/__tests__/envConfig-test.ts
+18
@@ -24,6 +24,24 @@ describe('parseConfigPragma()', () => {
24 );
25 });
26
27 + it('effect autodeps config must have at least 1 required argument', () => {
28 + expect(() => {
29 + validateEnvironmentConfig({
30 + inferEffectDependencies: [
31 + {
32 + function: {
33 + source: 'react',
34 + importSpecifierName: 'useEffect',
35 + },
36 + numRequiredArgs: 0,
37 + },
38 + ],
39 + } as any);
40 + }).toThrowErrorMatchingInlineSnapshot(
41 + `"InvalidConfig: Could not validate environment config. Update React Compiler config to fix the error. Validation error: numRequiredArgs must be > 0 at "inferEffectDependencies[0].numRequiredArgs""`,
42 + );
43 + });
44 +
45 it('can parse stringy enums', () => {
46 const stringyHook = {
47 effectKind: 'freeze',