mirror of
https://github.com/denoland/deno.git
synced 2025-08-04 10:59:13 +00:00
refactor: upgrade to deno_graph 0.95 (#29575)
This commit is contained in:
parent
5f8373309b
commit
b42d5906cd
14 changed files with 94 additions and 87 deletions
12
Cargo.lock
generated
12
Cargo.lock
generated
|
@ -1849,9 +1849,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_doc"
|
||||
version = "0.177.0"
|
||||
version = "0.178.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1fe1094f3e84803dac3c613d3bef2a0c6c172962bf9abfabefef12236f1bea1e"
|
||||
checksum = "52fe9fb2d9e6efed6c19dbceecd14d169023ee61223336e386e0d7aa396249c4"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"cfg-if",
|
||||
|
@ -1999,9 +1999,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_graph"
|
||||
version = "0.94.2"
|
||||
version = "0.95.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4d8943de4ab8cc7a124a0cd75191447f6e8be443ebeb5117416e31cc99ba2045"
|
||||
checksum = "af557eab0d8abf2c6e7c890d510eccaebe52388924ae4a3e15c8a818c1bbbb90"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"capacity_builder",
|
||||
|
@ -3573,9 +3573,9 @@ checksum = "31ae425815400e5ed474178a7a22e275a9687086a12ca63ec793ff292d8fdae8"
|
|||
|
||||
[[package]]
|
||||
name = "eszip"
|
||||
version = "0.91.0"
|
||||
version = "0.92.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e626660183f085e9ad81dc48a3954394e3c32d1f203ceedfa364d76984af361a"
|
||||
checksum = "dccf7977c7fcddecd68242e657b6a7b91047553da6bae3f7d1febb4e92e077b0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
|
|
|
@ -59,9 +59,9 @@ deno_core = { version = "0.350.0" }
|
|||
|
||||
deno_cache_dir = "=0.22.1"
|
||||
deno_config = { version = "=0.55.0", features = ["workspace"] }
|
||||
deno_doc = "=0.177.0"
|
||||
deno_doc = "=0.178.0"
|
||||
deno_error = "=0.6.1"
|
||||
deno_graph = { version = "=0.94.2", default-features = false }
|
||||
deno_graph = { version = "=0.95.0", default-features = false }
|
||||
deno_lint = "=0.76.0"
|
||||
deno_lockfile = "=0.29.0"
|
||||
deno_media_type = { version = "=0.2.8", features = ["module_specifier"] }
|
||||
|
@ -74,7 +74,7 @@ deno_task_shell = "=0.24.0"
|
|||
deno_terminal = "=0.2.2"
|
||||
deno_unsync = "0.4.3"
|
||||
deno_whoami = "0.1.0"
|
||||
eszip = "=0.91.0"
|
||||
eszip = "=0.92.0"
|
||||
|
||||
denokv_proto = "0.11.0"
|
||||
denokv_remote = "0.11.0"
|
||||
|
|
12
cli/cache/fast_check.rs
vendored
12
cli/cache/fast_check.rs
vendored
|
@ -1,8 +1,8 @@
|
|||
// Copyright 2018-2025 the Deno authors. MIT license.
|
||||
|
||||
use deno_core::error::AnyError;
|
||||
use deno_graph::FastCheckCacheItem;
|
||||
use deno_graph::FastCheckCacheKey;
|
||||
use deno_graph::fast_check::FastCheckCacheItem;
|
||||
use deno_graph::fast_check::FastCheckCacheKey;
|
||||
use deno_runtime::deno_webstorage::rusqlite::params;
|
||||
|
||||
use super::cache_db::CacheDB;
|
||||
|
@ -52,7 +52,7 @@ impl FastCheckCache {
|
|||
}
|
||||
}
|
||||
|
||||
impl deno_graph::FastCheckCache for FastCheckCache {
|
||||
impl deno_graph::fast_check::FastCheckCache for FastCheckCache {
|
||||
fn get(&self, key: FastCheckCacheKey) -> Option<FastCheckCacheItem> {
|
||||
Self::ensure_ok(self.inner.get(key))
|
||||
}
|
||||
|
@ -118,9 +118,9 @@ mod test {
|
|||
use std::collections::BTreeSet;
|
||||
|
||||
use deno_ast::ModuleSpecifier;
|
||||
use deno_graph::FastCheckCache as _;
|
||||
use deno_graph::FastCheckCacheModuleItem;
|
||||
use deno_graph::FastCheckCacheModuleItemDiagnostic;
|
||||
use deno_graph::fast_check::FastCheckCache as _;
|
||||
use deno_graph::fast_check::FastCheckCacheModuleItem;
|
||||
use deno_graph::fast_check::FastCheckCacheModuleItemDiagnostic;
|
||||
use deno_semver::package::PackageNv;
|
||||
|
||||
use super::*;
|
||||
|
|
21
cli/cache/module_info.rs
vendored
21
cli/cache/module_info.rs
vendored
|
@ -6,8 +6,9 @@ use deno_ast::MediaType;
|
|||
use deno_ast::ModuleSpecifier;
|
||||
use deno_core::error::AnyError;
|
||||
use deno_core::serde_json;
|
||||
use deno_graph::ModuleInfo;
|
||||
use deno_graph::ParserModuleAnalyzer;
|
||||
use deno_error::JsErrorBox;
|
||||
use deno_graph::analysis::ModuleInfo;
|
||||
use deno_graph::ast::ParserModuleAnalyzer;
|
||||
use deno_runtime::deno_webstorage::rusqlite::params;
|
||||
|
||||
use super::cache_db::CacheDB;
|
||||
|
@ -142,7 +143,7 @@ impl deno_graph::source::ModuleInfoCacher for ModuleInfoCache {
|
|||
specifier: &ModuleSpecifier,
|
||||
media_type: MediaType,
|
||||
source: &Arc<[u8]>,
|
||||
module_info: &deno_graph::ModuleInfo,
|
||||
module_info: &deno_graph::analysis::ModuleInfo,
|
||||
) {
|
||||
log::debug!("Caching module info for {}", specifier);
|
||||
let source_hash = CacheDBHash::from_hashable(source);
|
||||
|
@ -243,13 +244,15 @@ impl ModuleInfoCacheModuleAnalyzer<'_> {
|
|||
}
|
||||
|
||||
#[async_trait::async_trait(?Send)]
|
||||
impl deno_graph::ModuleAnalyzer for ModuleInfoCacheModuleAnalyzer<'_> {
|
||||
impl deno_graph::analysis::ModuleAnalyzer
|
||||
for ModuleInfoCacheModuleAnalyzer<'_>
|
||||
{
|
||||
async fn analyze(
|
||||
&self,
|
||||
specifier: &ModuleSpecifier,
|
||||
source: Arc<str>,
|
||||
media_type: MediaType,
|
||||
) -> Result<ModuleInfo, deno_ast::ParseDiagnostic> {
|
||||
) -> Result<ModuleInfo, JsErrorBox> {
|
||||
// attempt to load from the cache
|
||||
let source_hash = CacheDBHash::from_hashable(&source);
|
||||
if let Some(info) =
|
||||
|
@ -265,7 +268,9 @@ impl deno_graph::ModuleAnalyzer for ModuleInfoCacheModuleAnalyzer<'_> {
|
|||
move || {
|
||||
let parser = cache.as_capturing_parser();
|
||||
let analyzer = ParserModuleAnalyzer::new(&parser);
|
||||
analyzer.analyze_sync(&specifier, source, media_type)
|
||||
analyzer
|
||||
.analyze_sync(&specifier, source, media_type)
|
||||
.map_err(JsErrorBox::from_err)
|
||||
}
|
||||
})
|
||||
.await
|
||||
|
@ -311,9 +316,9 @@ fn serialize_media_type(media_type: MediaType) -> i64 {
|
|||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use deno_graph::JsDocImportInfo;
|
||||
use deno_graph::analysis::JsDocImportInfo;
|
||||
use deno_graph::analysis::SpecifierWithRange;
|
||||
use deno_graph::PositionRange;
|
||||
use deno_graph::SpecifierWithRange;
|
||||
|
||||
use super::*;
|
||||
|
||||
|
|
12
cli/cache/parsed_source.rs
vendored
12
cli/cache/parsed_source.rs
vendored
|
@ -7,11 +7,11 @@ use deno_ast::MediaType;
|
|||
use deno_ast::ModuleSpecifier;
|
||||
use deno_ast::ParsedSource;
|
||||
use deno_core::parking_lot::Mutex;
|
||||
use deno_graph::CapturingEsParser;
|
||||
use deno_graph::DefaultEsParser;
|
||||
use deno_graph::EsParser;
|
||||
use deno_graph::ParseOptions;
|
||||
use deno_graph::ParsedSourceStore;
|
||||
use deno_graph::ast::CapturingEsParser;
|
||||
use deno_graph::ast::DefaultEsParser;
|
||||
use deno_graph::ast::EsParser;
|
||||
use deno_graph::ast::ParseOptions;
|
||||
use deno_graph::ast::ParsedSourceStore;
|
||||
|
||||
/// Lazily parses JS/TS sources from a `deno_graph::ModuleGraph` given
|
||||
/// a `ParsedSourceCache`. Note that deno_graph doesn't necessarily cause
|
||||
|
@ -120,7 +120,7 @@ impl ParsedSourceCache {
|
|||
/// and in LSP settings the concurrency will be enforced
|
||||
/// at a higher level to ensure this will have the latest
|
||||
/// parsed source.
|
||||
impl deno_graph::ParsedSourceStore for ParsedSourceCache {
|
||||
impl deno_graph::ast::ParsedSourceStore for ParsedSourceCache {
|
||||
fn set_parsed_source(
|
||||
&self,
|
||||
specifier: ModuleSpecifier,
|
||||
|
|
|
@ -1993,7 +1993,7 @@ fn analyze_module(
|
|||
deno_graph::ModuleError::Parse {
|
||||
specifier,
|
||||
mtime: None,
|
||||
diagnostic: diagnostic.clone(),
|
||||
diagnostic: Arc::new(JsErrorBox::from_err(diagnostic.clone())),
|
||||
},
|
||||
)),
|
||||
ResolutionMode::Import,
|
||||
|
|
|
@ -1559,7 +1559,7 @@ impl EszipModuleLoader {
|
|||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use deno_graph::ParsedSourceStore;
|
||||
use deno_graph::ast::ParsedSourceStore;
|
||||
|
||||
use super::*;
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ use deno_ast::MediaType;
|
|||
use deno_ast::ModuleExportsAndReExports;
|
||||
use deno_ast::ModuleSpecifier;
|
||||
use deno_error::JsErrorBox;
|
||||
use deno_graph::ParsedSourceStore;
|
||||
use deno_graph::ast::ParsedSourceStore;
|
||||
use deno_resolver::npm::DenoInNpmPackageChecker;
|
||||
use deno_runtime::deno_fs;
|
||||
use node_resolver::analyze::CjsAnalysis as ExtNodeCjsAnalysis;
|
||||
|
|
|
@ -15,11 +15,11 @@ use deno_doc as doc;
|
|||
use deno_doc::html::UrlResolveKind;
|
||||
use deno_doc::html::UsageComposer;
|
||||
use deno_doc::html::UsageComposerEntry;
|
||||
use deno_graph::analysis::ModuleAnalyzer;
|
||||
use deno_graph::ast::EsParser;
|
||||
use deno_graph::source::NullFileSystem;
|
||||
use deno_graph::CheckJsOption;
|
||||
use deno_graph::EsParser;
|
||||
use deno_graph::GraphKind;
|
||||
use deno_graph::ModuleAnalyzer;
|
||||
use deno_graph::ModuleSpecifier;
|
||||
use deno_lib::version::DENO_VERSION_INFO;
|
||||
use deno_npm_installer::graph::NpmCachingStrategy;
|
||||
|
|
|
@ -4,7 +4,7 @@ use std::borrow::Cow;
|
|||
|
||||
use deno_ast::diagnostics::Diagnostic;
|
||||
use deno_ast::ModuleSpecifier;
|
||||
use deno_graph::FastCheckDiagnostic;
|
||||
use deno_graph::fast_check::FastCheckDiagnostic;
|
||||
use deno_graph::ModuleGraph;
|
||||
use deno_lint::diagnostic::LintDiagnostic;
|
||||
use deno_lint::diagnostic::LintDiagnosticDetails;
|
||||
|
|
|
@ -22,7 +22,7 @@ use deno_core::anyhow::anyhow;
|
|||
use deno_core::error::AnyError;
|
||||
use deno_core::parking_lot::Mutex;
|
||||
use deno_core::url::Url;
|
||||
use deno_graph::FastCheckDiagnostic;
|
||||
use deno_graph::fast_check::FastCheckDiagnostic;
|
||||
use deno_semver::Version;
|
||||
|
||||
use super::unfurl::SpecifierUnfurlerDiagnostic;
|
||||
|
|
|
@ -117,7 +117,7 @@ impl<TSys: FsMetadata + FsRead> ModuleContentProvider<TSys> {
|
|||
};
|
||||
let text_info = parsed_source.text_info_lazy();
|
||||
let module_info =
|
||||
deno_graph::ParserModuleAnalyzer::module_info(&parsed_source);
|
||||
deno_graph::ast::ParserModuleAnalyzer::module_info(&parsed_source);
|
||||
let mut text_changes = Vec::new();
|
||||
if media_type.is_jsx() {
|
||||
self.add_jsx_text_changes(
|
||||
|
@ -148,7 +148,7 @@ impl<TSys: FsMetadata + FsRead> ModuleContentProvider<TSys> {
|
|||
specifier: &Url,
|
||||
parsed_source: &ParsedSource,
|
||||
text_info: &SourceTextInfo,
|
||||
module_info: &deno_graph::ModuleInfo,
|
||||
module_info: &deno_graph::analysis::ModuleInfo,
|
||||
diagnostic_reporter: &mut dyn FnMut(SpecifierUnfurlerDiagnostic),
|
||||
text_changes: &mut Vec<TextChange>,
|
||||
) -> Result<(), AnyError> {
|
||||
|
|
|
@ -18,10 +18,10 @@ use deno_ast::SourceTextProvider;
|
|||
use deno_ast::TextChange;
|
||||
use deno_core::anyhow;
|
||||
use deno_core::ModuleSpecifier;
|
||||
use deno_graph::DependencyDescriptor;
|
||||
use deno_graph::DynamicTemplatePart;
|
||||
use deno_graph::StaticDependencyKind;
|
||||
use deno_graph::TypeScriptReference;
|
||||
use deno_graph::analysis::DependencyDescriptor;
|
||||
use deno_graph::analysis::DynamicTemplatePart;
|
||||
use deno_graph::analysis::StaticDependencyKind;
|
||||
use deno_graph::analysis::TypeScriptReference;
|
||||
use deno_package_json::PackageJsonDepValue;
|
||||
use deno_package_json::PackageJsonDepWorkspaceReq;
|
||||
use deno_resolver::workspace::MappedResolution;
|
||||
|
@ -510,12 +510,12 @@ impl<TSys: FsMetadata + FsRead> SpecifierUnfurler<TSys> {
|
|||
&self,
|
||||
module_url: &ModuleSpecifier,
|
||||
text_info: &SourceTextInfo,
|
||||
dep: &deno_graph::DynamicDependencyDescriptor,
|
||||
dep: &deno_graph::analysis::DynamicDependencyDescriptor,
|
||||
text_changes: &mut Vec<deno_ast::TextChange>,
|
||||
diagnostic_reporter: &mut dyn FnMut(SpecifierUnfurlerDiagnostic),
|
||||
) -> bool {
|
||||
match &dep.argument {
|
||||
deno_graph::DynamicArgument::String(specifier) => {
|
||||
deno_graph::analysis::DynamicArgument::String(specifier) => {
|
||||
let range = to_range(text_info, &dep.argument_range);
|
||||
let maybe_relative_index =
|
||||
text_info.text_str()[range.start..range.end].find(specifier);
|
||||
|
@ -539,49 +539,51 @@ impl<TSys: FsMetadata + FsRead> SpecifierUnfurler<TSys> {
|
|||
}
|
||||
true
|
||||
}
|
||||
deno_graph::DynamicArgument::Template(parts) => match parts.first() {
|
||||
Some(DynamicTemplatePart::String { value: specifier }) => {
|
||||
// relative doesn't need to be modified
|
||||
let is_relative =
|
||||
specifier.starts_with("./") || specifier.starts_with("../");
|
||||
if is_relative {
|
||||
return true;
|
||||
deno_graph::analysis::DynamicArgument::Template(parts) => {
|
||||
match parts.first() {
|
||||
Some(DynamicTemplatePart::String { value: specifier }) => {
|
||||
// relative doesn't need to be modified
|
||||
let is_relative =
|
||||
specifier.starts_with("./") || specifier.starts_with("../");
|
||||
if is_relative {
|
||||
return true;
|
||||
}
|
||||
if !specifier.ends_with('/') {
|
||||
return false;
|
||||
}
|
||||
let unfurled = self.unfurl_specifier_reporting_diagnostic(
|
||||
module_url,
|
||||
specifier,
|
||||
deno_resolver::workspace::ResolutionKind::Execution, // dynamic imports are always execution
|
||||
text_info,
|
||||
&dep.argument_range,
|
||||
diagnostic_reporter,
|
||||
);
|
||||
let Some(unfurled) = unfurled else {
|
||||
return true; // nothing to unfurl
|
||||
};
|
||||
let range = to_range(text_info, &dep.argument_range);
|
||||
let maybe_relative_index =
|
||||
text_info.text_str()[range.start..].find(specifier);
|
||||
let Some(relative_index) = maybe_relative_index else {
|
||||
return false;
|
||||
};
|
||||
let start = range.start + relative_index;
|
||||
text_changes.push(deno_ast::TextChange {
|
||||
range: start..start + specifier.len(),
|
||||
new_text: unfurled,
|
||||
});
|
||||
true
|
||||
}
|
||||
if !specifier.ends_with('/') {
|
||||
return false;
|
||||
Some(DynamicTemplatePart::Expr) => {
|
||||
false // failed analyzing
|
||||
}
|
||||
None => {
|
||||
true // ignore
|
||||
}
|
||||
let unfurled = self.unfurl_specifier_reporting_diagnostic(
|
||||
module_url,
|
||||
specifier,
|
||||
deno_resolver::workspace::ResolutionKind::Execution, // dynamic imports are always execution
|
||||
text_info,
|
||||
&dep.argument_range,
|
||||
diagnostic_reporter,
|
||||
);
|
||||
let Some(unfurled) = unfurled else {
|
||||
return true; // nothing to unfurl
|
||||
};
|
||||
let range = to_range(text_info, &dep.argument_range);
|
||||
let maybe_relative_index =
|
||||
text_info.text_str()[range.start..].find(specifier);
|
||||
let Some(relative_index) = maybe_relative_index else {
|
||||
return false;
|
||||
};
|
||||
let start = range.start + relative_index;
|
||||
text_changes.push(deno_ast::TextChange {
|
||||
range: start..start + specifier.len(),
|
||||
new_text: unfurled,
|
||||
});
|
||||
true
|
||||
}
|
||||
Some(DynamicTemplatePart::Expr) => {
|
||||
false // failed analyzing
|
||||
}
|
||||
None => {
|
||||
true // ignore
|
||||
}
|
||||
},
|
||||
deno_graph::DynamicArgument::Expr => {
|
||||
}
|
||||
deno_graph::analysis::DynamicArgument::Expr => {
|
||||
false // failed analyzing
|
||||
}
|
||||
}
|
||||
|
@ -591,7 +593,7 @@ impl<TSys: FsMetadata + FsRead> SpecifierUnfurler<TSys> {
|
|||
&self,
|
||||
url: &ModuleSpecifier,
|
||||
parsed_source: &ParsedSource,
|
||||
module_info: &deno_graph::ModuleInfo,
|
||||
module_info: &deno_graph::analysis::ModuleInfo,
|
||||
text_changes: &mut Vec<TextChange>,
|
||||
diagnostic_reporter: &mut dyn FnMut(SpecifierUnfurlerDiagnostic),
|
||||
) {
|
||||
|
@ -757,7 +759,7 @@ mod tests {
|
|||
use deno_config::workspace::ResolverWorkspaceJsrPackage;
|
||||
use deno_core::serde_json::json;
|
||||
use deno_core::url::Url;
|
||||
use deno_graph::ParserModuleAnalyzer;
|
||||
use deno_graph::ast::ParserModuleAnalyzer;
|
||||
use deno_resolver::workspace::SloppyImportsOptions;
|
||||
use deno_runtime::deno_node::PackageJson;
|
||||
use deno_semver::Version;
|
||||
|
|
|
@ -29,9 +29,9 @@ use deno_core::url::Url;
|
|||
use deno_core::LocalInspectorSession;
|
||||
use deno_core::PollEventLoopOptions;
|
||||
use deno_error::JsErrorBox;
|
||||
use deno_graph::analysis::SpecifierWithRange;
|
||||
use deno_graph::Position;
|
||||
use deno_graph::PositionRange;
|
||||
use deno_graph::SpecifierWithRange;
|
||||
use deno_lib::util::result::any_and_jserrorbox_downcast_ref;
|
||||
use deno_runtime::worker::MainWorker;
|
||||
use deno_semver::npm::NpmPackageReqReference;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue