File tree Expand file tree Collapse file tree 4 files changed +44
-3
lines changed
packages/babel-plugin-react-compiler Expand file tree Collapse file tree 4 files changed +44
-3
lines changed Original file line number Diff line number Diff line change 42
42
"babel-jest" : " ^29.0.3" ,
43
43
"babel-plugin-fbt" : " ^1.0.0" ,
44
44
"babel-plugin-fbt-runtime" : " ^1.0.0" ,
45
+ "cosmiconfig" : " ^9.0.0" ,
45
46
"eslint" : " ^8.57.1" ,
46
47
"invariant" : " ^2.2.4" ,
47
48
"jest" : " ^29.0.3" ,
Original file line number Diff line number Diff line change 6
6
*/
7
7
8
8
import type * as BabelCore from '@babel/core' ;
9
- import { compileProgram , parsePluginOptions } from '../Entrypoint' ;
9
+ import {
10
+ compileProgram ,
11
+ findReactConfig ,
12
+ parsePluginOptions ,
13
+ type PluginOptions ,
14
+ } from '../Entrypoint' ;
10
15
import {
11
16
injectReanimatedFlag ,
12
17
pipelineUsesReanimatedPlugin ,
@@ -29,7 +34,18 @@ export default function BabelPluginReactCompiler(
29
34
* want Forget to run true to source as possible.
30
35
*/
31
36
Program ( prog , pass ) : void {
32
- let opts = parsePluginOptions ( pass . opts ) ;
37
+ const reactConfig = findReactConfig ( ) ;
38
+ let opts : PluginOptions | null = null ;
39
+ if ( reactConfig != null ) {
40
+ opts = parsePluginOptions ( reactConfig . config ) ;
41
+ if ( pass . opts != null ) {
42
+ console . warn (
43
+ `Duplicate React Compiler config found, defaulting to reactrc found in: ${ reactConfig . filepath } ` ,
44
+ ) ;
45
+ }
46
+ } else {
47
+ opts = parsePluginOptions ( pass . opts ) ;
48
+ }
33
49
const isDev =
34
50
( typeof __DEV__ !== 'undefined' && __DEV__ === true ) ||
35
51
process . env [ 'NODE_ENV' ] === 'development' ;
Original file line number Diff line number Diff line change @@ -16,6 +16,7 @@ import {
16
16
import { hasOwnProperty } from '../Utils/utils' ;
17
17
import { fromZodError } from 'zod-validation-error' ;
18
18
import { CompilerPipelineValue } from './Pipeline' ;
19
+ import { type CosmiconfigResult , cosmiconfigSync } from 'cosmiconfig' ;
19
20
20
21
const PanicThresholdOptionsSchema = z . enum ( [
21
22
/*
@@ -286,3 +287,11 @@ export function parseTargetConfig(value: unknown): CompilerReactTarget {
286
287
function isCompilerFlag ( s : string ) : s is keyof PluginOptions {
287
288
return hasOwnProperty ( defaultOptions , s ) ;
288
289
}
290
+
291
+ export function findReactConfig ( ) : CosmiconfigResult {
292
+ const explorerSync = cosmiconfigSync ( 'react' , {
293
+ searchStrategy : 'project' ,
294
+ cache : true ,
295
+ } ) ;
296
+ return explorerSync . search ( ) ;
297
+ }
Original file line number Diff line number Diff line change @@ -3841,6 +3841,16 @@ core-js-compat@^3.30.1, core-js-compat@^3.30.2:
3841
3841
dependencies :
3842
3842
browserslist "^4.21.5"
3843
3843
3844
+ cosmiconfig@^9.0.0 :
3845
+ version "9.0.0"
3846
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d"
3847
+ integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==
3848
+ dependencies :
3849
+ env-paths "^2.2.1"
3850
+ import-fresh "^3.3.0"
3851
+ js-yaml "^4.1.0"
3852
+ parse-json "^5.2.0"
3853
+
3844
3854
create-require@^1.1.0 :
3845
3855
version "1.1.1"
3846
3856
resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
@@ -4076,6 +4086,11 @@ entities@^4.4.0:
4076
4086
resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174"
4077
4087
integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==
4078
4088
4089
+ env-paths@^2.2.1 :
4090
+ version "2.2.1"
4091
+ resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2"
4092
+ integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==
4093
+
4079
4094
error-ex@^1.3.1 :
4080
4095
version "1.3.2"
4081
4096
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
@@ -4758,7 +4773,7 @@ ignore@^5.3.1:
4758
4773
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5"
4759
4774
integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==
4760
4775
4761
- import-fresh@^3.2.1 :
4776
+ import-fresh@^3.2.1, import-fresh@^3.3.0 :
4762
4777
version "3.3.0"
4763
4778
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
4764
4779
integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
You can’t perform that action at this time.
0 commit comments