Skip to content

Commit 39b091e

Browse files
committed
refactor(pm): rename resolve_commmand to resolve_install_command
1 parent 6eab11a commit 39b091e

5 files changed

Lines changed: 24 additions & 13 deletions

File tree

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
use std::{collections::HashMap, iter};
2+
3+
use crate::package_manager::{PackageManager, ResolveCommandResult, format_path_env};
4+
5+
impl PackageManager {
6+
/// Resolve the install command.
7+
pub fn resolve_install_command(&self, args: &Vec<String>) -> ResolveCommandResult {
8+
ResolveCommandResult {
9+
bin_path: self.bin_name.to_string(),
10+
args: iter::once("install")
11+
.chain(args.iter().map(String::as_str))
12+
.map(String::from)
13+
.collect(),
14+
envs: HashMap::from([("PATH".to_string(), format_path_env(self.get_bin_prefix()))]),
15+
}
16+
}
17+
}

crates/vite_package_manager/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
mod config;
2+
mod install;
23
pub mod package;
34
pub mod package_manager;
45
mod request;

crates/vite_package_manager/src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ async fn main() -> Result<(), Error> {
88
let package_manager = PackageManager::builder(&current_dir).build().await?;
99
println!("Package manager: {package_manager:#?} for {current_dir:?}");
1010

11-
let resolve_command = package_manager.resolve_command();
11+
let resolve_command = package_manager.resolve_install_command(&vec![]);
1212
println!("Resolve command: {resolve_command:#?}");
1313

1414
Ok(())

crates/vite_package_manager/src/package_manager.rs

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use std::{
33
env, fmt,
44
fs::{self, File},
55
io::{BufReader, Seek, SeekFrom},
6+
iter,
67
path::Path,
78
};
89

@@ -50,6 +51,7 @@ impl fmt::Display for PackageManagerType {
5051
#[derive(Debug)]
5152
pub struct ResolveCommandResult {
5253
pub bin_path: String,
54+
pub args: Vec<String>,
5355
pub envs: HashMap<String, String>,
5456
}
5557

@@ -146,14 +148,6 @@ impl PackageManager {
146148
self.install_dir.join("bin")
147149
}
148150

149-
#[must_use]
150-
pub fn resolve_command(&self) -> ResolveCommandResult {
151-
ResolveCommandResult {
152-
bin_path: self.bin_name.to_string(),
153-
envs: HashMap::from([("PATH".to_string(), format_path_env(self.get_bin_prefix()))]),
154-
}
155-
}
156-
157151
#[must_use]
158152
pub fn get_fingerprint_ignores(&self) -> Vec<Str> {
159153
let mut ignores: Vec<Str> = vec![
@@ -601,7 +595,7 @@ async fn set_package_manager_field(
601595
Ok(())
602596
}
603597

604-
fn format_path_env(bin_prefix: impl AsRef<Path>) -> String {
598+
pub(crate) fn format_path_env(bin_prefix: impl AsRef<Path>) -> String {
605599
let mut paths = env::split_paths(&env::var_os("PATH").unwrap_or_default()).collect::<Vec<_>>();
606600
paths.insert(0, bin_prefix.as_ref().to_path_buf());
607601
env::join_paths(paths).unwrap().to_string_lossy().to_string()

crates/vite_task/src/install.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
use std::{
22
env,
33
io::{self, IsTerminal, Write},
4-
iter,
54
};
65

76
use crossterm::{
@@ -59,11 +58,11 @@ impl InstallCommand {
5958
Err(e) => return Err(e),
6059
};
6160
let workspace = Workspace::partial_load(self.workspace_root)?;
62-
let resolve_command = package_manager.resolve_command();
61+
let resolve_command = package_manager.resolve_install_command(args);
6362
let resolved_task = ResolvedTask::resolve_from_builtin_with_command_result(
6463
&workspace,
6564
"install",
66-
iter::once("install").chain(args.iter().map(String::as_str)),
65+
resolve_command.args.iter(),
6766
ResolveCommandResult { bin_path: resolve_command.bin_path, envs: resolve_command.envs },
6867
self.ignore_replay,
6968
Some(package_manager.get_fingerprint_ignores()),

0 commit comments

Comments
 (0)