@@ -70,8 +70,10 @@ function detectReactVersion(context) {
70
70
}
71
71
}
72
72
73
+ const defaultVersion = '999.999.999' ;
74
+
73
75
function getReactVersionFromContext ( context ) {
74
- let confVer = '999.999.999' ;
76
+ let confVer = defaultVersion ;
75
77
// .eslintrc shared settings (https://eslint.org/docs/user-guide/configuring#adding-shared-settings)
76
78
if ( context . settings && context . settings . react && context . settings . react . version ) {
77
79
let settingsVersion = context . settings . react . version ;
@@ -89,7 +91,11 @@ function getReactVersionFromContext(context) {
89
91
warnedForMissingVersion = true ;
90
92
}
91
93
confVer = / ^ [ 0 - 9 ] + \. [ 0 - 9 ] + $ / . test ( confVer ) ? `${ confVer } .0` : confVer ;
92
- return semver . coerce ( confVer . split ( '.' ) . map ( ( part ) => Number ( part ) ) . join ( '.' ) ) . version ;
94
+ const result = semver . coerce ( confVer . split ( '.' ) . map ( ( part ) => Number ( part ) ) . join ( '.' ) ) ;
95
+ if ( ! result ) {
96
+ error ( `Warning: React version specified in eslint-plugin-react-settings must be a valid semver version, or "detect"; got “${ confVer } ”` ) ;
97
+ }
98
+ return result ? result . version : defaultVersion ;
93
99
}
94
100
95
101
// TODO, semver-major: remove context fallback
@@ -111,7 +117,7 @@ function detectFlowVersion(context) {
111
117
}
112
118
113
119
function getFlowVersionFromContext ( context ) {
114
- let confVer = '999.999.999' ;
120
+ let confVer = defaultVersion ;
115
121
// .eslintrc shared settings (https://eslint.org/docs/user-guide/configuring#adding-shared-settings)
116
122
if ( context . settings . react && context . settings . react . flowVersion ) {
117
123
let flowVersion = context . settings . react . flowVersion ;
@@ -127,7 +133,11 @@ function getFlowVersionFromContext(context) {
127
133
throw 'Could not retrieve flowVersion from settings' ; // eslint-disable-line no-throw-literal
128
134
}
129
135
confVer = / ^ [ 0 - 9 ] + \. [ 0 - 9 ] + $ / . test ( confVer ) ? `${ confVer } .0` : confVer ;
130
- return semver . coerce ( confVer . split ( '.' ) . map ( ( part ) => Number ( part ) ) . join ( '.' ) ) . version ;
136
+ const result = semver . coerce ( confVer . split ( '.' ) . map ( ( part ) => Number ( part ) ) . join ( '.' ) ) ;
137
+ if ( ! result ) {
138
+ error ( `Warning: Flow version specified in eslint-plugin-react-settings must be a valid semver version, or "detect"; got “${ confVer } ”` ) ;
139
+ }
140
+ return result ? result . version : defaultVersion ;
131
141
}
132
142
133
143
function test ( semverRange , confVer ) {
0 commit comments