[compiler] Add flag for lowering context access

*This is only for internal profiling, not intended to ship.*

ghstack-source-id: e48998b7be4272199c8a6ff9cc2ec0975add5030
Pull Request resolved: https://github.com/facebook/react/pull/30547
This commit is contained in:
Sathya Gunsasekaran
2024-07-31 14:35:35 +01:00
parent f5f9899bee
commit bae18b4dfe

View File

@@ -434,6 +434,25 @@ const EnvironmentConfigSchema = z.object({
* Here the variables `ref` and `myRef` will be typed as Refs.
*/
enableTreatRefLikeIdentifiersAsRefs: z.boolean().nullable().default(false),
/*
* If enabled, this lowers any calls to `useContext` hook to use a selector
* function.
*
* The compiler automatically figures out the keys by looking for the immediate
* destructuring of the return value from the useContext call. In the future,
* this can be extended to different kinds of context access like property
* loads and accesses over multiple statements as well.
*
* ```
* // input
* const {foo, bar} = useContext(MyContext);
*
* // output
* const {foo, bar} = useContext(MyContext, (c) => [c.foo, c.bar]);
* ```
*/
enableLowerContextAccess: z.boolean().nullable().default(false),
});
export type EnvironmentConfig = z.infer<typeof EnvironmentConfigSchema>;