local.rs
Contains an unbounded block loopimports deno_path_util::fs::canonicalize_path_maybe_not_exists
SHA-256fe902ff4f8d33facf9fd75ce8c5d7383afc5ba8b7ac6ce1812faea1ddc6dfb2c
MaleculeH(Db)Md(In)
Evidence
1// Copyright 2018-2026 the Deno authors. MIT license.
2
3//! Code for local node_modules resolution.
4
5use std::borrow::Cow;
6use std::path::Path;
7use std::path::PathBuf;
8
9use deno_npm::NpmPackageCacheFolderId;
10use deno_npm::NpmPackageId;
11use deno_path_util::fs::canonicalize_path_maybe_not_exists;
12use deno_path_util::url_from_directory_path;
13use deno_semver::Version;
14use node_resolver::NpmPackageFolderResolver;
15use node_resolver::UrlOrPathRef;
16use node_resolver::cache::NodeResolutionSys;
17use node_resolver::errors::PackageFolderResolveError;
18use node_resolver::errors::PackageFolderResolveIoError;
19use node_resolver::errors::PackageNotFoundError;
20use node_resolver::errors::ReferrerNotFoundError;
21use sys_traits::FsCanonicalize;
22use sys_traits::FsMetadata;
23use url::Url;
24
25use super::super::join_package_name_to_path;
26use super::resolution::NpmResolutionCellRc;
27use crate::npm::local::get_package_folder_id_folder_name_from_parts;
28use crate::npm::local::get_package_folder_id_from_folder_name;
29
30/// Resolver that creates a local node_modules directory
31/// and resolves packages from it.
32#[derive(Debug)]
33pub struct LocalNpmPackageResolver<TSys: FsCanonica …
105:27… &self, path: &Path) -> PathBuf {
106 let mut last_found = path;
107 loop {
108 let parent = last_found.parent().unwrap();
109 if parent.file_name().unwrap() == "node_modules" {
110 return last_f …
174:7… go from the current path down because it might have bundled dependencies
175 for current_folder in local_path.ancestors().skip(1) {
176 let node_ …