@@ -38,9 +38,7 @@ struct NpmRegistry {
3838
3939impl NpmRegistry {
4040 async fn resolve ( ) -> Result < Self , Error > {
41- let cwd = current_dir ( ) . map_err ( |error| {
42- Error :: ConfigError ( format ! ( "Cannot get current directory: {error}" ) . into ( ) )
43- } ) ?;
41+ let cwd = current_dir ( ) ?;
4442 let resolution = resolve_version ( & cwd) . await ?;
4543 let runtime = vite_js_runtime:: download_runtime (
4644 vite_js_runtime:: JsRuntimeType :: Node ,
@@ -78,9 +76,7 @@ async fn npm_view(
7876
7977 if !output. status . success ( ) {
8078 let stderr = String :: from_utf8_lossy ( & output. stderr ) . trim ( ) . to_string ( ) ;
81- return Err ( Error :: ConfigError (
82- format ! ( "npm view failed for {package_spec}: {stderr}" ) . into ( ) ,
83- ) ) ;
79+ return Err ( Error :: Other ( format ! ( "npm view failed for {package_spec}: {stderr}" ) . into ( ) ) ) ;
8480 }
8581
8682 Ok ( output. stdout )
@@ -159,7 +155,7 @@ pub(crate) fn parse_package_spec(spec: &str) -> Result<(String, Option<String>),
159155 if is_local_package_spec ( spec) {
160156 let package_json = read_local_package_json ( spec) ?;
161157 let Some ( package_name) = package_json. get ( "name" ) . and_then ( |name| name. as_str ( ) ) else {
162- return Err ( Error :: ConfigError (
158+ return Err ( Error :: Other (
163159 format ! ( "Local package {spec} must have a string name in package.json" ) . into ( ) ,
164160 ) ) ;
165161 } ;
@@ -187,13 +183,9 @@ fn resolve_local_package_path(spec: &str) -> Result<AbsolutePathBuf, Error> {
187183 let path = std:: path:: Path :: new ( path_spec) ;
188184 if path. is_absolute ( ) {
189185 AbsolutePathBuf :: new ( path. to_path_buf ( ) )
190- . ok_or_else ( || Error :: ConfigError ( format ! ( "Invalid local package path {spec}" ) . into ( ) ) )
186+ . ok_or_else ( || Error :: Other ( format ! ( "Invalid local package path {spec}" ) . into ( ) ) )
191187 } else {
192- Ok ( current_dir ( )
193- . map_err ( |error| {
194- Error :: ConfigError ( format ! ( "Cannot get current directory: {error}" ) . into ( ) )
195- } ) ?
196- . join ( path) )
188+ Ok ( current_dir ( ) ?. join ( path) )
197189 }
198190}
199191
@@ -206,7 +198,7 @@ fn read_local_package_json(spec: &str) -> Result<serde_json::Value, Error> {
206198 let package_json_path = package_path. join ( "package.json" ) ;
207199 let package_json_content =
208200 std:: fs:: read_to_string ( package_json_path. as_path ( ) ) . map_err ( |error| {
209- Error :: ConfigError (
201+ Error :: Other (
210202 format ! (
211203 "Failed to read package.json for local package {spec} at {}: {error}" ,
212204 package_json_path. as_path( ) . display( )
@@ -227,7 +219,7 @@ fn read_package_json_from_tarball(
227219 package_path : & AbsolutePathBuf ,
228220) -> Result < serde_json:: Value , Error > {
229221 let file = File :: open ( package_path. as_path ( ) ) . map_err ( |error| {
230- Error :: ConfigError (
222+ Error :: Other (
231223 format ! (
232224 "Failed to read package tarball {spec} at {}: {error}" ,
233225 package_path. as_path( ) . display( )
@@ -239,44 +231,42 @@ fn read_package_json_from_tarball(
239231 let mut archive = Archive :: new ( decoder) ;
240232
241233 for entry in archive. entries ( ) . map_err ( |error| {
242- Error :: ConfigError ( format ! ( "Failed to read package tarball {spec}: {error}" ) . into ( ) )
234+ Error :: Other ( format ! ( "Failed to read package tarball {spec}: {error}" ) . into ( ) )
243235 } ) ? {
244236 let mut entry = entry. map_err ( |error| {
245- Error :: ConfigError ( format ! ( "Failed to read package tarball {spec}: {error}" ) . into ( ) )
237+ Error :: Other ( format ! ( "Failed to read package tarball {spec}: {error}" ) . into ( ) )
246238 } ) ?;
247239 let path = entry. path ( ) . map_err ( |error| {
248- Error :: ConfigError ( format ! ( "Failed to read package tarball {spec}: {error}" ) . into ( ) )
240+ Error :: Other ( format ! ( "Failed to read package tarball {spec}: {error}" ) . into ( ) )
249241 } ) ?;
250242 if path. as_ref ( ) != std:: path:: Path :: new ( "package/package.json" ) {
251243 continue ;
252244 }
253245
254246 let mut package_json_content = String :: new ( ) ;
255247 entry. read_to_string ( & mut package_json_content) . map_err ( |error| {
256- Error :: ConfigError (
248+ Error :: Other (
257249 format ! ( "Failed to read package.json from package tarball {spec}: {error}" ) . into ( ) ,
258250 )
259251 } ) ?;
260252 return serde_json:: from_str ( & package_json_content) . map_err ( Error :: JsonError ) ;
261253 }
262254
263- Err ( Error :: ConfigError (
264- format ! ( "Package tarball {spec} must contain package/package.json" ) . into ( ) ,
265- ) )
255+ Err ( Error :: Other ( format ! ( "Package tarball {spec} must contain package/package.json" ) . into ( ) ) )
266256}
267257
268258fn parse_npm_view_version ( stdout : & [ u8 ] ) -> Result < String , Error > {
269259 let raw = String :: from_utf8_lossy ( stdout) ;
270260 let trimmed = raw. trim ( ) ;
271261 if trimmed. is_empty ( ) {
272- return Err ( Error :: ConfigError ( "npm view returned an empty version" . into ( ) ) ) ;
262+ return Err ( Error :: Other ( "npm view returned an empty version" . into ( ) ) ) ;
273263 }
274264
275265 match serde_json:: from_str :: < serde_json:: Value > ( trimmed) {
276266 Ok ( serde_json:: Value :: String ( version) ) => Ok ( version) ,
277267 Ok ( serde_json:: Value :: Array ( versions) ) => {
278268 let Some ( version) = versions. iter ( ) . rev ( ) . find_map ( |version| version. as_str ( ) ) else {
279- return Err ( Error :: ConfigError ( "npm view returned an empty version list" . into ( ) ) ) ;
269+ return Err ( Error :: Other ( "npm view returned an empty version list" . into ( ) ) ) ;
280270 } ;
281271 Ok ( version. to_string ( ) )
282272 }
0 commit comments