mirror of
https://github.com/denoland/deno.git
synced 2025-08-04 10:59:13 +00:00
refactor: move CliNpmResolver
to deno_resolver::npm::NpmResolver
(#27659)
As title. After this PR all npm resolution will be out of the CLI crate.
This commit is contained in:
parent
3fb8fc1ba7
commit
0b033140c0
44 changed files with 1030 additions and 901 deletions
|
@ -25,9 +25,8 @@ use tokio::task::LocalSet;
|
|||
use tokio_util::sync::CancellationToken;
|
||||
|
||||
use crate::node::CliNodeResolver;
|
||||
use crate::npm::CliManagedNpmResolver;
|
||||
use crate::npm::CliNpmResolver;
|
||||
use crate::npm::InnerCliNpmResolverRef;
|
||||
use crate::npm::ManagedCliNpmResolver;
|
||||
|
||||
pub fn get_script_with_args(script: &str, argv: &[String]) -> String {
|
||||
let additional_args = argv
|
||||
|
@ -414,15 +413,15 @@ impl ShellCommand for NodeModulesFileRunCommand {
|
|||
}
|
||||
|
||||
pub fn resolve_custom_commands(
|
||||
npm_resolver: &dyn CliNpmResolver,
|
||||
npm_resolver: &CliNpmResolver,
|
||||
node_resolver: &CliNodeResolver,
|
||||
) -> Result<HashMap<String, Rc<dyn ShellCommand>>, AnyError> {
|
||||
let mut commands = match npm_resolver.as_inner() {
|
||||
InnerCliNpmResolverRef::Byonm(npm_resolver) => {
|
||||
let mut commands = match npm_resolver {
|
||||
CliNpmResolver::Byonm(npm_resolver) => {
|
||||
let node_modules_dir = npm_resolver.root_node_modules_path().unwrap();
|
||||
resolve_npm_commands_from_bin_dir(node_modules_dir)
|
||||
}
|
||||
InnerCliNpmResolverRef::Managed(npm_resolver) => {
|
||||
CliNpmResolver::Managed(npm_resolver) => {
|
||||
resolve_managed_npm_commands(npm_resolver, node_resolver)?
|
||||
}
|
||||
};
|
||||
|
@ -521,13 +520,12 @@ fn resolve_execution_path_from_npx_shim(
|
|||
}
|
||||
|
||||
fn resolve_managed_npm_commands(
|
||||
npm_resolver: &ManagedCliNpmResolver,
|
||||
npm_resolver: &CliManagedNpmResolver,
|
||||
node_resolver: &CliNodeResolver,
|
||||
) -> Result<HashMap<String, Rc<dyn ShellCommand>>, AnyError> {
|
||||
let mut result = HashMap::new();
|
||||
let snapshot = npm_resolver.snapshot();
|
||||
for id in snapshot.top_level_packages() {
|
||||
let package_folder = npm_resolver.resolve_pkg_folder_from_pkg_id(id)?;
|
||||
for id in npm_resolver.resolution().top_level_packages() {
|
||||
let package_folder = npm_resolver.resolve_pkg_folder_from_pkg_id(&id)?;
|
||||
let bin_commands =
|
||||
node_resolver.resolve_binary_commands(&package_folder)?;
|
||||
for bin_command in bin_commands {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue