0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-02-23 13:43:31 -05:00
denoland-deno/cli/npm/managed/resolvers/mod.rs
David Sherret ce0968ef3a
refactor(npm): split some resolution from installation (#27595)
This splits away some npm resolution code from installation. It will
allow for more easily extracting out resolution code in the future.
2025-01-08 23:46:37 +00:00

33 lines
920 B
Rust

// Copyright 2018-2025 the Deno authors. MIT license.
mod common;
mod global;
mod local;
use std::path::PathBuf;
use std::sync::Arc;
pub use self::common::NpmPackageFsResolver;
pub use self::common::NpmPackageFsResolverPackageFolderError;
use self::global::GlobalNpmPackageResolver;
pub use self::local::get_package_folder_id_folder_name;
use self::local::LocalNpmPackageResolver;
use super::resolution::NpmResolution;
use crate::npm::CliNpmCache;
use crate::sys::CliSys;
pub fn create_npm_fs_resolver(
npm_cache: Arc<CliNpmCache>,
resolution: Arc<NpmResolution>,
sys: CliSys,
maybe_node_modules_path: Option<PathBuf>,
) -> Arc<dyn NpmPackageFsResolver> {
match maybe_node_modules_path {
Some(node_modules_folder) => Arc::new(LocalNpmPackageResolver::new(
resolution,
sys,
node_modules_folder,
)),
None => Arc::new(GlobalNpmPackageResolver::new(npm_cache, resolution)),
}
}