diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2023-02-23 10:58:10 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-23 10:58:10 -0500 |
commit | 344317ec501fa124f0c74b44035fa4516999dce6 (patch) | |
tree | 3a0e4ca3d83b1a47a0903f08648ef1b896b32195 /cli/args/mod.rs | |
parent | 214bdbbc2b09ab3f56f0ffe1ad5930d48ec0c76f (diff) |
feat(npm): support bare specifiers from package.json in more subcommands and language server (#17891)
Diffstat (limited to 'cli/args/mod.rs')
-rw-r--r-- | cli/args/mod.rs | 38 |
1 files changed, 1 insertions, 37 deletions
diff --git a/cli/args/mod.rs b/cli/args/mod.rs index aa1781bd8..fe6883f2c 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -391,49 +391,13 @@ fn discover_package_json( flags: &Flags, maybe_stop_at: Option<PathBuf>, ) -> Result<Option<PackageJson>, AnyError> { - fn discover_from( - start: &Path, - maybe_stop_at: Option<PathBuf>, - ) -> Result<Option<PackageJson>, AnyError> { - const PACKAGE_JSON_NAME: &str = "package.json"; - - // note: ancestors() includes the `start` path - for ancestor in start.ancestors() { - let path = ancestor.join(PACKAGE_JSON_NAME); - - let source = match std::fs::read_to_string(&path) { - Ok(source) => source, - Err(err) if err.kind() == std::io::ErrorKind::NotFound => { - if let Some(stop_at) = maybe_stop_at.as_ref() { - if ancestor == stop_at { - break; - } - } - continue; - } - Err(err) => bail!( - "Error loading package.json at {}. {:#}", - path.display(), - err - ), - }; - - let package_json = PackageJson::load_from_string(path.clone(), source)?; - log::debug!("package.json file found at '{}'", path.display()); - return Ok(Some(package_json)); - } - // No config file found. - log::debug!("No package.json file found"); - Ok(None) - } - // TODO(bartlomieju): discover for all subcommands, but print warnings that // `package.json` is ignored in bundle/compile/etc. if let Some(package_json_dir) = flags.package_json_search_dir() { let package_json_dir = canonicalize_path_maybe_not_exists(&package_json_dir)?; - return discover_from(&package_json_dir, maybe_stop_at); + return package_json::discover_from(&package_json_dir, maybe_stop_at); } log::debug!("No package.json file found"); |