@@ -11,26 +11,36 @@ const home = isWin ? process.env.USERPROFILE : process.env.HOME;
1111function getRcPaths ( name : string , cwd : string ) : Array < string > {
1212 const configPaths = [ ] ;
1313
14- function addConfigPath ( ...segments ) {
14+ function pushConfigPath ( ...segments ) {
1515 configPaths . push ( path . join ( ...segments ) ) ;
16+ if ( segments [ segments . length - 1 ] === `.${ name } rc` ) {
17+ configPaths . push ( path . join ( ...segments . slice ( 0 , - 1 ) , `.${ name } rc.yml` ) ) ;
18+ }
19+ }
20+
21+ function unshiftConfigPath ( ...segments ) {
22+ configPaths . unshift ( path . join ( ...segments ) ) ;
23+ if ( segments [ segments . length - 1 ] === `.${ name } rc` ) {
24+ configPaths . unshift ( path . join ( ...segments . slice ( 0 , - 1 ) , `.${ name } rc.yml` ) ) ;
25+ }
1626 }
1727
1828 if ( ! isWin ) {
19- addConfigPath ( etc , name , 'config' ) ;
20- addConfigPath ( etc , `${ name } rc` ) ;
29+ pushConfigPath ( etc , name , 'config' ) ;
30+ pushConfigPath ( etc , `${ name } rc` ) ;
2131 }
2232
2333 if ( home ) {
24- addConfigPath ( CONFIG_DIRECTORY ) ;
25- addConfigPath ( home , '.config' , name , 'config' ) ;
26- addConfigPath ( home , '.config' , name ) ;
27- addConfigPath ( home , `.${ name } ` , 'config' ) ;
28- addConfigPath ( home , `.${ name } rc` ) ;
34+ pushConfigPath ( CONFIG_DIRECTORY ) ;
35+ pushConfigPath ( home , '.config' , name , 'config' ) ;
36+ pushConfigPath ( home , '.config' , name ) ;
37+ pushConfigPath ( home , `.${ name } ` , 'config' ) ;
38+ pushConfigPath ( home , `.${ name } rc` ) ;
2939 }
3040
3141 // add .yarnrc locations relative to the cwd
3242 while ( true ) {
33- configPaths . unshift ( path . join ( cwd , `.${ name } rc` ) ) ;
43+ unshiftConfigPath ( cwd , `.${ name } rc` ) ;
3444
3545 const upperCwd = path . dirname ( cwd ) ;
3646 if ( upperCwd === cwd ) {
@@ -45,7 +55,7 @@ function getRcPaths(name: string, cwd: string): Array<string> {
4555 const envVariable = `${ name } _config` . toUpperCase ( ) ;
4656
4757 if ( process . env [ envVariable ] ) {
48- addConfigPath ( process . env [ envVariable ] ) ;
58+ pushConfigPath ( process . env [ envVariable ] ) ;
4959 }
5060
5161 return configPaths ;
0 commit comments