|
1 | | -use browserslist::Opts; |
| 1 | +use browserslist::{Error, Opts}; |
2 | 2 |
|
3 | 3 | /// Configuration parsed from input string and context directory |
4 | 4 | #[derive(Debug, Default)] |
@@ -69,16 +69,20 @@ pub fn parse<'a>(input: Option<&str>, context: &'a str) -> BrowserslistHandlerCo |
69 | 69 | } |
70 | 70 |
|
71 | 71 | /// Loads the browsers list based on the input and context. |
72 | | -pub fn load_browserslist(input: Option<&str>, context: &str) -> Option<Vec<String>> { |
| 72 | +pub fn load_browserslist(input: Option<&str>, context: &str) -> Result<Vec<String>, Error> { |
73 | 73 | let BrowserslistHandlerConfig { |
74 | 74 | config_path, |
75 | 75 | env, |
76 | 76 | env_or_query, |
77 | 77 | query, |
78 | 78 | context, |
79 | 79 | } = parse(input, context); |
80 | | - |
81 | | - let mut opts = Opts::default(); |
| 80 | + // don't support unknown Node.js version, align with babel |
| 81 | + let mut opts = Opts { |
| 82 | + throw_on_missing: true, |
| 83 | + ignore_unknown_versions: false, |
| 84 | + ..Default::default() |
| 85 | + }; |
82 | 86 | if let Some(config) = config_path { |
83 | 87 | opts.config = Some(config); |
84 | 88 | } else { |
@@ -122,7 +126,7 @@ pub fn load_browserslist(input: Option<&str>, context: &str) -> Option<Vec<Strin |
122 | 126 | browserslist::execute(&opts) |
123 | 127 | } |
124 | 128 | } { |
125 | | - Ok(browsers) => Some(browsers.into_iter().map(|d| d.to_string()).collect()), |
126 | | - Err(_) => None, |
| 129 | + Ok(browsers) => Ok(browsers.into_iter().map(|d| d.to_string()).collect()), |
| 130 | + Err(err) => Err(err), |
127 | 131 | } |
128 | 132 | } |
0 commit comments