@@ -244,17 +244,11 @@ pub fn read(path: String) -> Config {
244244}
245245
246246fn check_if_rescript11_or_higher ( version : & str ) -> bool {
247- // Non stable rescript versions might contain non-numeric characters
248- let filter_non_number_chars = |s : & str | s. chars ( ) . filter ( |c| c. is_numeric ( ) ) . collect :: < String > ( ) ;
249-
250- version
251- . split ( '.' )
252- . next ( )
253- . map ( filter_non_number_chars)
254- . unwrap ( )
255- . parse :: < usize > ( )
256- . unwrap ( )
257- >= 11
247+ if let Some ( major) = version. split ( '.' ) . next ( ) . and_then ( |s| s. parse :: < usize > ( ) . ok ( ) ) {
248+ major >= 11
249+ } else {
250+ false
251+ }
258252}
259253
260254fn namespace_from_package_name ( package_name : & str ) -> String {
@@ -433,4 +427,23 @@ mod tests {
433427 assert_eq ! ( config. gentype_config. is_some( ) , true ) ;
434428 assert_eq ! ( config. get_gentype_arg( ) , vec![ "-bs-gentype" . to_string( ) ] ) ;
435429 }
430+
431+ #[ test]
432+ fn test_check_if_rescript11_or_higher ( ) {
433+ assert_eq ! ( check_if_rescript11_or_higher( "11.0.0" ) , true ) ;
434+ assert_eq ! ( check_if_rescript11_or_higher( "11.0.1" ) , true ) ;
435+ assert_eq ! ( check_if_rescript11_or_higher( "11.1.0" ) , true ) ;
436+
437+ assert_eq ! ( check_if_rescript11_or_higher( "12.0.0" ) , true ) ;
438+
439+ assert_eq ! ( check_if_rescript11_or_higher( "10.0.0" ) , false ) ;
440+ assert_eq ! ( check_if_rescript11_or_higher( "9.0.0" ) , false ) ;
441+ }
442+
443+ #[ test]
444+ fn test_check_if_rescript11_or_higher_misc ( ) {
445+ assert_eq ! ( check_if_rescript11_or_higher( "11" ) , true ) ;
446+ assert_eq ! ( check_if_rescript11_or_higher( "*" ) , false ) ;
447+ assert_eq ! ( check_if_rescript11_or_higher( "12.0.0-alpha.4" ) , true ) ;
448+ }
436449}
0 commit comments