summaryrefslogtreecommitdiff
path: root/cli/tools
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tools')
-rw-r--r--cli/tools/lint/rules/mod.rs6
-rw-r--r--cli/tools/lint/rules/no_sloppy_imports.rs19
-rw-r--r--cli/tools/registry/mod.rs7
-rw-r--r--cli/tools/registry/unfurl.rs15
4 files changed, 31 insertions, 16 deletions
diff --git a/cli/tools/lint/rules/mod.rs b/cli/tools/lint/rules/mod.rs
index 2669ffda1..dd723ad15 100644
--- a/cli/tools/lint/rules/mod.rs
+++ b/cli/tools/lint/rules/mod.rs
@@ -14,7 +14,7 @@ use deno_graph::ModuleGraph;
use deno_lint::diagnostic::LintDiagnostic;
use deno_lint::rules::LintRule;
-use crate::resolver::SloppyImportsResolver;
+use crate::resolver::CliSloppyImportsResolver;
mod no_sloppy_imports;
mod no_slow_types;
@@ -144,13 +144,13 @@ impl ConfiguredRules {
}
pub struct LintRuleProvider {
- sloppy_imports_resolver: Option<Arc<SloppyImportsResolver>>,
+ sloppy_imports_resolver: Option<Arc<CliSloppyImportsResolver>>,
workspace_resolver: Option<Arc<WorkspaceResolver>>,
}
impl LintRuleProvider {
pub fn new(
- sloppy_imports_resolver: Option<Arc<SloppyImportsResolver>>,
+ sloppy_imports_resolver: Option<Arc<CliSloppyImportsResolver>>,
workspace_resolver: Option<Arc<WorkspaceResolver>>,
) -> Self {
Self {
diff --git a/cli/tools/lint/rules/no_sloppy_imports.rs b/cli/tools/lint/rules/no_sloppy_imports.rs
index 4180be5be..2f6087588 100644
--- a/cli/tools/lint/rules/no_sloppy_imports.rs
+++ b/cli/tools/lint/rules/no_sloppy_imports.rs
@@ -16,24 +16,25 @@ use deno_lint::diagnostic::LintDiagnosticRange;
use deno_lint::diagnostic::LintFix;
use deno_lint::diagnostic::LintFixChange;
use deno_lint::rules::LintRule;
+use deno_resolver::sloppy_imports::SloppyImportsResolution;
+use deno_resolver::sloppy_imports::SloppyImportsResolutionMode;
use text_lines::LineAndColumnIndex;
use crate::graph_util::CliJsrUrlProvider;
-use crate::resolver::SloppyImportsResolution;
-use crate::resolver::SloppyImportsResolver;
+use crate::resolver::CliSloppyImportsResolver;
use super::ExtendedLintRule;
#[derive(Debug)]
pub struct NoSloppyImportsRule {
- sloppy_imports_resolver: Option<Arc<SloppyImportsResolver>>,
+ sloppy_imports_resolver: Option<Arc<CliSloppyImportsResolver>>,
// None for making printing out the lint rules easy
workspace_resolver: Option<Arc<WorkspaceResolver>>,
}
impl NoSloppyImportsRule {
pub fn new(
- sloppy_imports_resolver: Option<Arc<SloppyImportsResolver>>,
+ sloppy_imports_resolver: Option<Arc<CliSloppyImportsResolver>>,
workspace_resolver: Option<Arc<WorkspaceResolver>>,
) -> Self {
NoSloppyImportsRule {
@@ -172,7 +173,7 @@ impl LintRule for NoSloppyImportsRule {
#[derive(Debug)]
struct SloppyImportCaptureResolver<'a> {
workspace_resolver: &'a WorkspaceResolver,
- sloppy_imports_resolver: &'a SloppyImportsResolver,
+ sloppy_imports_resolver: &'a CliSloppyImportsResolver,
captures: RefCell<HashMap<Range, SloppyImportsResolution>>,
}
@@ -194,7 +195,13 @@ impl<'a> deno_graph::source::Resolver for SloppyImportCaptureResolver<'a> {
}
| deno_config::workspace::MappedResolution::ImportMap {
specifier, ..
- } => match self.sloppy_imports_resolver.resolve(&specifier, mode) {
+ } => match self.sloppy_imports_resolver.resolve(
+ &specifier,
+ match mode {
+ ResolutionMode::Execution => SloppyImportsResolutionMode::Execution,
+ ResolutionMode::Types => SloppyImportsResolutionMode::Types,
+ },
+ ) {
Some(res) => {
self
.captures
diff --git a/cli/tools/registry/mod.rs b/cli/tools/registry/mod.rs
index 941514b04..4098d62e3 100644
--- a/cli/tools/registry/mod.rs
+++ b/cli/tools/registry/mod.rs
@@ -43,7 +43,8 @@ use crate::cache::ParsedSourceCache;
use crate::factory::CliFactory;
use crate::graph_util::ModuleGraphCreator;
use crate::http_util::HttpClient;
-use crate::resolver::SloppyImportsResolver;
+use crate::resolver::CliSloppyImportsResolver;
+use crate::resolver::SloppyImportsCachedFs;
use crate::tools::check::CheckOptions;
use crate::tools::lint::collect_no_slow_type_diagnostics;
use crate::tools::registry::diagnostics::PublishDiagnostic;
@@ -108,7 +109,9 @@ pub async fn publish(
}
let specifier_unfurler = Arc::new(SpecifierUnfurler::new(
if cli_options.unstable_sloppy_imports() {
- Some(SloppyImportsResolver::new(cli_factory.fs().clone()))
+ Some(CliSloppyImportsResolver::new(SloppyImportsCachedFs::new(
+ cli_factory.fs().clone(),
+ )))
} else {
None
},
diff --git a/cli/tools/registry/unfurl.rs b/cli/tools/registry/unfurl.rs
index 0f5b9fdd3..5ec726a64 100644
--- a/cli/tools/registry/unfurl.rs
+++ b/cli/tools/registry/unfurl.rs
@@ -12,9 +12,10 @@ use deno_graph::DynamicTemplatePart;
use deno_graph::ParserModuleAnalyzer;
use deno_graph::TypeScriptReference;
use deno_package_json::PackageJsonDepValue;
+use deno_resolver::sloppy_imports::SloppyImportsResolutionMode;
use deno_runtime::deno_node::is_builtin_node_module;
-use crate::resolver::SloppyImportsResolver;
+use crate::resolver::CliSloppyImportsResolver;
#[derive(Debug, Clone)]
pub enum SpecifierUnfurlerDiagnostic {
@@ -42,14 +43,14 @@ impl SpecifierUnfurlerDiagnostic {
}
pub struct SpecifierUnfurler {
- sloppy_imports_resolver: Option<SloppyImportsResolver>,
+ sloppy_imports_resolver: Option<CliSloppyImportsResolver>,
workspace_resolver: WorkspaceResolver,
bare_node_builtins: bool,
}
impl SpecifierUnfurler {
pub fn new(
- sloppy_imports_resolver: Option<SloppyImportsResolver>,
+ sloppy_imports_resolver: Option<CliSloppyImportsResolver>,
workspace_resolver: WorkspaceResolver,
bare_node_builtins: bool,
) -> Self {
@@ -179,7 +180,7 @@ impl SpecifierUnfurler {
let resolved =
if let Some(sloppy_imports_resolver) = &self.sloppy_imports_resolver {
sloppy_imports_resolver
- .resolve(&resolved, deno_graph::source::ResolutionMode::Execution)
+ .resolve(&resolved, SloppyImportsResolutionMode::Execution)
.map(|res| res.into_specifier())
.unwrap_or(resolved)
} else {
@@ -388,6 +389,8 @@ fn to_range(
mod tests {
use std::sync::Arc;
+ use crate::resolver::SloppyImportsCachedFs;
+
use super::*;
use deno_ast::MediaType;
use deno_ast::ModuleSpecifier;
@@ -455,7 +458,9 @@ mod tests {
);
let fs = Arc::new(RealFs);
let unfurler = SpecifierUnfurler::new(
- Some(SloppyImportsResolver::new(fs)),
+ Some(CliSloppyImportsResolver::new(SloppyImportsCachedFs::new(
+ fs,
+ ))),
workspace_resolver,
true,
);