diff options
Diffstat (limited to 'cli')
-rw-r--r-- | cli/Cargo.toml | 2 | ||||
-rw-r--r-- | cli/graph_container.rs | 37 |
2 files changed, 19 insertions, 20 deletions
diff --git a/cli/Cargo.toml b/cli/Cargo.toml index c3fc704f1..06384f479 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -65,7 +65,7 @@ winres.workspace = true [dependencies] deno_ast = { workspace = true, features = ["bundler", "cjs", "codegen", "proposal", "react", "sourcemap", "transforms", "typescript", "view", "visit"] } deno_cache_dir = { workspace = true } -deno_config = { version = "=0.30.0", features = ["workspace", "sync"] } +deno_config = { version = "=0.30.1", features = ["workspace", "sync"] } deno_core = { workspace = true, features = ["include_js_files_for_snapshotting"] } deno_doc = { version = "0.146.0", features = ["html", "syntect"] } deno_emit = "=0.44.0" diff --git a/cli/graph_container.rs b/cli/graph_container.rs index cf913464f..9f71045c6 100644 --- a/cli/graph_container.rs +++ b/cli/graph_container.rs @@ -3,15 +3,18 @@ use std::sync::Arc; use deno_ast::ModuleSpecifier; +use deno_config::glob::FilePatterns; +use deno_config::glob::PathOrPatternSet; use deno_core::error::AnyError; use deno_core::parking_lot::RwLock; -use deno_core::resolve_url_or_path; use deno_graph::ModuleGraph; use deno_runtime::colors; use deno_runtime::deno_permissions::PermissionsContainer; use crate::args::CliOptions; use crate::module_loader::ModuleLoadPreparer; +use crate::util::fs::collect_specifiers; +use crate::util::path::is_script_ext; pub trait ModuleGraphContainer: Clone + 'static { /// Acquires a permit to modify the module graph without other code @@ -99,24 +102,20 @@ impl MainModuleGraphContainer { files: &[String], ) -> Result<Vec<ModuleSpecifier>, AnyError> { let excludes = self.cli_options.workspace().resolve_config_excludes()?; - Ok( - files - .iter() - .filter_map(|file| { - let file_url = - resolve_url_or_path(file, self.cli_options.initial_cwd()).ok()?; - if file_url.scheme() != "file" { - return Some(file_url); - } - // ignore local files that match any of files listed in `exclude` option - let file_path = file_url.to_file_path().ok()?; - if excludes.matches_path(&file_path) { - None - } else { - Some(file_url) - } - }) - .collect::<Vec<_>>(), + let include_patterns = + PathOrPatternSet::from_include_relative_path_or_patterns( + self.cli_options.initial_cwd(), + files, + )?; + let file_patterns = FilePatterns { + base: self.cli_options.initial_cwd().to_path_buf(), + include: Some(include_patterns), + exclude: excludes, + }; + collect_specifiers( + file_patterns, + self.cli_options.vendor_dir_path().map(ToOwned::to_owned), + |e| is_script_ext(e.path), ) } } |