refactor: upgrade to deno_graph 0.95 (#29575)

This commit is contained in:
David Sherret 2025-06-03 13:52:23 -04:00 committed by GitHub
parent 5f8373309b
commit b42d5906cd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
14 changed files with 94 additions and 87 deletions

12
Cargo.lock generated
View file

@ -1849,9 +1849,9 @@ dependencies = [
[[package]] [[package]]
name = "deno_doc" name = "deno_doc"
version = "0.177.0" version = "0.178.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1fe1094f3e84803dac3c613d3bef2a0c6c172962bf9abfabefef12236f1bea1e" checksum = "52fe9fb2d9e6efed6c19dbceecd14d169023ee61223336e386e0d7aa396249c4"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"cfg-if", "cfg-if",
@ -1999,9 +1999,9 @@ dependencies = [
[[package]] [[package]]
name = "deno_graph" name = "deno_graph"
version = "0.94.2" version = "0.95.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4d8943de4ab8cc7a124a0cd75191447f6e8be443ebeb5117416e31cc99ba2045" checksum = "af557eab0d8abf2c6e7c890d510eccaebe52388924ae4a3e15c8a818c1bbbb90"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"capacity_builder", "capacity_builder",
@ -3573,9 +3573,9 @@ checksum = "31ae425815400e5ed474178a7a22e275a9687086a12ca63ec793ff292d8fdae8"
[[package]] [[package]]
name = "eszip" name = "eszip"
version = "0.91.0" version = "0.92.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e626660183f085e9ad81dc48a3954394e3c32d1f203ceedfa364d76984af361a" checksum = "dccf7977c7fcddecd68242e657b6a7b91047553da6bae3f7d1febb4e92e077b0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"async-trait", "async-trait",

View file

@ -59,9 +59,9 @@ deno_core = { version = "0.350.0" }
deno_cache_dir = "=0.22.1" deno_cache_dir = "=0.22.1"
deno_config = { version = "=0.55.0", features = ["workspace"] } deno_config = { version = "=0.55.0", features = ["workspace"] }
deno_doc = "=0.177.0" deno_doc = "=0.178.0"
deno_error = "=0.6.1" 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_lint = "=0.76.0"
deno_lockfile = "=0.29.0" deno_lockfile = "=0.29.0"
deno_media_type = { version = "=0.2.8", features = ["module_specifier"] } 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_terminal = "=0.2.2"
deno_unsync = "0.4.3" deno_unsync = "0.4.3"
deno_whoami = "0.1.0" deno_whoami = "0.1.0"
eszip = "=0.91.0" eszip = "=0.92.0"
denokv_proto = "0.11.0" denokv_proto = "0.11.0"
denokv_remote = "0.11.0" denokv_remote = "0.11.0"

View file

@ -1,8 +1,8 @@
// Copyright 2018-2025 the Deno authors. MIT license. // Copyright 2018-2025 the Deno authors. MIT license.
use deno_core::error::AnyError; use deno_core::error::AnyError;
use deno_graph::FastCheckCacheItem; use deno_graph::fast_check::FastCheckCacheItem;
use deno_graph::FastCheckCacheKey; use deno_graph::fast_check::FastCheckCacheKey;
use deno_runtime::deno_webstorage::rusqlite::params; use deno_runtime::deno_webstorage::rusqlite::params;
use super::cache_db::CacheDB; 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> { fn get(&self, key: FastCheckCacheKey) -> Option<FastCheckCacheItem> {
Self::ensure_ok(self.inner.get(key)) Self::ensure_ok(self.inner.get(key))
} }
@ -118,9 +118,9 @@ mod test {
use std::collections::BTreeSet; use std::collections::BTreeSet;
use deno_ast::ModuleSpecifier; use deno_ast::ModuleSpecifier;
use deno_graph::FastCheckCache as _; use deno_graph::fast_check::FastCheckCache as _;
use deno_graph::FastCheckCacheModuleItem; use deno_graph::fast_check::FastCheckCacheModuleItem;
use deno_graph::FastCheckCacheModuleItemDiagnostic; use deno_graph::fast_check::FastCheckCacheModuleItemDiagnostic;
use deno_semver::package::PackageNv; use deno_semver::package::PackageNv;
use super::*; use super::*;

View file

@ -6,8 +6,9 @@ use deno_ast::MediaType;
use deno_ast::ModuleSpecifier; use deno_ast::ModuleSpecifier;
use deno_core::error::AnyError; use deno_core::error::AnyError;
use deno_core::serde_json; use deno_core::serde_json;
use deno_graph::ModuleInfo; use deno_error::JsErrorBox;
use deno_graph::ParserModuleAnalyzer; use deno_graph::analysis::ModuleInfo;
use deno_graph::ast::ParserModuleAnalyzer;
use deno_runtime::deno_webstorage::rusqlite::params; use deno_runtime::deno_webstorage::rusqlite::params;
use super::cache_db::CacheDB; use super::cache_db::CacheDB;
@ -142,7 +143,7 @@ impl deno_graph::source::ModuleInfoCacher for ModuleInfoCache {
specifier: &ModuleSpecifier, specifier: &ModuleSpecifier,
media_type: MediaType, media_type: MediaType,
source: &Arc<[u8]>, source: &Arc<[u8]>,
module_info: &deno_graph::ModuleInfo, module_info: &deno_graph::analysis::ModuleInfo,
) { ) {
log::debug!("Caching module info for {}", specifier); log::debug!("Caching module info for {}", specifier);
let source_hash = CacheDBHash::from_hashable(source); let source_hash = CacheDBHash::from_hashable(source);
@ -243,13 +244,15 @@ impl ModuleInfoCacheModuleAnalyzer<'_> {
} }
#[async_trait::async_trait(?Send)] #[async_trait::async_trait(?Send)]
impl deno_graph::ModuleAnalyzer for ModuleInfoCacheModuleAnalyzer<'_> { impl deno_graph::analysis::ModuleAnalyzer
for ModuleInfoCacheModuleAnalyzer<'_>
{
async fn analyze( async fn analyze(
&self, &self,
specifier: &ModuleSpecifier, specifier: &ModuleSpecifier,
source: Arc<str>, source: Arc<str>,
media_type: MediaType, media_type: MediaType,
) -> Result<ModuleInfo, deno_ast::ParseDiagnostic> { ) -> Result<ModuleInfo, JsErrorBox> {
// attempt to load from the cache // attempt to load from the cache
let source_hash = CacheDBHash::from_hashable(&source); let source_hash = CacheDBHash::from_hashable(&source);
if let Some(info) = if let Some(info) =
@ -265,7 +268,9 @@ impl deno_graph::ModuleAnalyzer for ModuleInfoCacheModuleAnalyzer<'_> {
move || { move || {
let parser = cache.as_capturing_parser(); let parser = cache.as_capturing_parser();
let analyzer = ParserModuleAnalyzer::new(&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 .await
@ -311,9 +316,9 @@ fn serialize_media_type(media_type: MediaType) -> i64 {
#[cfg(test)] #[cfg(test)]
mod test { mod test {
use deno_graph::JsDocImportInfo; use deno_graph::analysis::JsDocImportInfo;
use deno_graph::analysis::SpecifierWithRange;
use deno_graph::PositionRange; use deno_graph::PositionRange;
use deno_graph::SpecifierWithRange;
use super::*; use super::*;

View file

@ -7,11 +7,11 @@ use deno_ast::MediaType;
use deno_ast::ModuleSpecifier; use deno_ast::ModuleSpecifier;
use deno_ast::ParsedSource; use deno_ast::ParsedSource;
use deno_core::parking_lot::Mutex; use deno_core::parking_lot::Mutex;
use deno_graph::CapturingEsParser; use deno_graph::ast::CapturingEsParser;
use deno_graph::DefaultEsParser; use deno_graph::ast::DefaultEsParser;
use deno_graph::EsParser; use deno_graph::ast::EsParser;
use deno_graph::ParseOptions; use deno_graph::ast::ParseOptions;
use deno_graph::ParsedSourceStore; use deno_graph::ast::ParsedSourceStore;
/// Lazily parses JS/TS sources from a `deno_graph::ModuleGraph` given /// Lazily parses JS/TS sources from a `deno_graph::ModuleGraph` given
/// a `ParsedSourceCache`. Note that deno_graph doesn't necessarily cause /// 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 /// and in LSP settings the concurrency will be enforced
/// at a higher level to ensure this will have the latest /// at a higher level to ensure this will have the latest
/// parsed source. /// parsed source.
impl deno_graph::ParsedSourceStore for ParsedSourceCache { impl deno_graph::ast::ParsedSourceStore for ParsedSourceCache {
fn set_parsed_source( fn set_parsed_source(
&self, &self,
specifier: ModuleSpecifier, specifier: ModuleSpecifier,

View file

@ -1993,7 +1993,7 @@ fn analyze_module(
deno_graph::ModuleError::Parse { deno_graph::ModuleError::Parse {
specifier, specifier,
mtime: None, mtime: None,
diagnostic: diagnostic.clone(), diagnostic: Arc::new(JsErrorBox::from_err(diagnostic.clone())),
}, },
)), )),
ResolutionMode::Import, ResolutionMode::Import,

View file

@ -1559,7 +1559,7 @@ impl EszipModuleLoader {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use deno_graph::ParsedSourceStore; use deno_graph::ast::ParsedSourceStore;
use super::*; use super::*;

View file

@ -7,7 +7,7 @@ use deno_ast::MediaType;
use deno_ast::ModuleExportsAndReExports; use deno_ast::ModuleExportsAndReExports;
use deno_ast::ModuleSpecifier; use deno_ast::ModuleSpecifier;
use deno_error::JsErrorBox; use deno_error::JsErrorBox;
use deno_graph::ParsedSourceStore; use deno_graph::ast::ParsedSourceStore;
use deno_resolver::npm::DenoInNpmPackageChecker; use deno_resolver::npm::DenoInNpmPackageChecker;
use deno_runtime::deno_fs; use deno_runtime::deno_fs;
use node_resolver::analyze::CjsAnalysis as ExtNodeCjsAnalysis; use node_resolver::analyze::CjsAnalysis as ExtNodeCjsAnalysis;

View file

@ -15,11 +15,11 @@ use deno_doc as doc;
use deno_doc::html::UrlResolveKind; use deno_doc::html::UrlResolveKind;
use deno_doc::html::UsageComposer; use deno_doc::html::UsageComposer;
use deno_doc::html::UsageComposerEntry; use deno_doc::html::UsageComposerEntry;
use deno_graph::analysis::ModuleAnalyzer;
use deno_graph::ast::EsParser;
use deno_graph::source::NullFileSystem; use deno_graph::source::NullFileSystem;
use deno_graph::CheckJsOption; use deno_graph::CheckJsOption;
use deno_graph::EsParser;
use deno_graph::GraphKind; use deno_graph::GraphKind;
use deno_graph::ModuleAnalyzer;
use deno_graph::ModuleSpecifier; use deno_graph::ModuleSpecifier;
use deno_lib::version::DENO_VERSION_INFO; use deno_lib::version::DENO_VERSION_INFO;
use deno_npm_installer::graph::NpmCachingStrategy; use deno_npm_installer::graph::NpmCachingStrategy;

View file

@ -4,7 +4,7 @@ use std::borrow::Cow;
use deno_ast::diagnostics::Diagnostic; use deno_ast::diagnostics::Diagnostic;
use deno_ast::ModuleSpecifier; use deno_ast::ModuleSpecifier;
use deno_graph::FastCheckDiagnostic; use deno_graph::fast_check::FastCheckDiagnostic;
use deno_graph::ModuleGraph; use deno_graph::ModuleGraph;
use deno_lint::diagnostic::LintDiagnostic; use deno_lint::diagnostic::LintDiagnostic;
use deno_lint::diagnostic::LintDiagnosticDetails; use deno_lint::diagnostic::LintDiagnosticDetails;

View file

@ -22,7 +22,7 @@ use deno_core::anyhow::anyhow;
use deno_core::error::AnyError; use deno_core::error::AnyError;
use deno_core::parking_lot::Mutex; use deno_core::parking_lot::Mutex;
use deno_core::url::Url; use deno_core::url::Url;
use deno_graph::FastCheckDiagnostic; use deno_graph::fast_check::FastCheckDiagnostic;
use deno_semver::Version; use deno_semver::Version;
use super::unfurl::SpecifierUnfurlerDiagnostic; use super::unfurl::SpecifierUnfurlerDiagnostic;

View file

@ -117,7 +117,7 @@ impl<TSys: FsMetadata + FsRead> ModuleContentProvider<TSys> {
}; };
let text_info = parsed_source.text_info_lazy(); let text_info = parsed_source.text_info_lazy();
let module_info = let module_info =
deno_graph::ParserModuleAnalyzer::module_info(&parsed_source); deno_graph::ast::ParserModuleAnalyzer::module_info(&parsed_source);
let mut text_changes = Vec::new(); let mut text_changes = Vec::new();
if media_type.is_jsx() { if media_type.is_jsx() {
self.add_jsx_text_changes( self.add_jsx_text_changes(
@ -148,7 +148,7 @@ impl<TSys: FsMetadata + FsRead> ModuleContentProvider<TSys> {
specifier: &Url, specifier: &Url,
parsed_source: &ParsedSource, parsed_source: &ParsedSource,
text_info: &SourceTextInfo, text_info: &SourceTextInfo,
module_info: &deno_graph::ModuleInfo, module_info: &deno_graph::analysis::ModuleInfo,
diagnostic_reporter: &mut dyn FnMut(SpecifierUnfurlerDiagnostic), diagnostic_reporter: &mut dyn FnMut(SpecifierUnfurlerDiagnostic),
text_changes: &mut Vec<TextChange>, text_changes: &mut Vec<TextChange>,
) -> Result<(), AnyError> { ) -> Result<(), AnyError> {

View file

@ -18,10 +18,10 @@ use deno_ast::SourceTextProvider;
use deno_ast::TextChange; use deno_ast::TextChange;
use deno_core::anyhow; use deno_core::anyhow;
use deno_core::ModuleSpecifier; use deno_core::ModuleSpecifier;
use deno_graph::DependencyDescriptor; use deno_graph::analysis::DependencyDescriptor;
use deno_graph::DynamicTemplatePart; use deno_graph::analysis::DynamicTemplatePart;
use deno_graph::StaticDependencyKind; use deno_graph::analysis::StaticDependencyKind;
use deno_graph::TypeScriptReference; use deno_graph::analysis::TypeScriptReference;
use deno_package_json::PackageJsonDepValue; use deno_package_json::PackageJsonDepValue;
use deno_package_json::PackageJsonDepWorkspaceReq; use deno_package_json::PackageJsonDepWorkspaceReq;
use deno_resolver::workspace::MappedResolution; use deno_resolver::workspace::MappedResolution;
@ -510,12 +510,12 @@ impl<TSys: FsMetadata + FsRead> SpecifierUnfurler<TSys> {
&self, &self,
module_url: &ModuleSpecifier, module_url: &ModuleSpecifier,
text_info: &SourceTextInfo, text_info: &SourceTextInfo,
dep: &deno_graph::DynamicDependencyDescriptor, dep: &deno_graph::analysis::DynamicDependencyDescriptor,
text_changes: &mut Vec<deno_ast::TextChange>, text_changes: &mut Vec<deno_ast::TextChange>,
diagnostic_reporter: &mut dyn FnMut(SpecifierUnfurlerDiagnostic), diagnostic_reporter: &mut dyn FnMut(SpecifierUnfurlerDiagnostic),
) -> bool { ) -> bool {
match &dep.argument { match &dep.argument {
deno_graph::DynamicArgument::String(specifier) => { deno_graph::analysis::DynamicArgument::String(specifier) => {
let range = to_range(text_info, &dep.argument_range); let range = to_range(text_info, &dep.argument_range);
let maybe_relative_index = let maybe_relative_index =
text_info.text_str()[range.start..range.end].find(specifier); text_info.text_str()[range.start..range.end].find(specifier);
@ -539,7 +539,8 @@ impl<TSys: FsMetadata + FsRead> SpecifierUnfurler<TSys> {
} }
true true
} }
deno_graph::DynamicArgument::Template(parts) => match parts.first() { deno_graph::analysis::DynamicArgument::Template(parts) => {
match parts.first() {
Some(DynamicTemplatePart::String { value: specifier }) => { Some(DynamicTemplatePart::String { value: specifier }) => {
// relative doesn't need to be modified // relative doesn't need to be modified
let is_relative = let is_relative =
@ -580,8 +581,9 @@ impl<TSys: FsMetadata + FsRead> SpecifierUnfurler<TSys> {
None => { None => {
true // ignore true // ignore
} }
}, }
deno_graph::DynamicArgument::Expr => { }
deno_graph::analysis::DynamicArgument::Expr => {
false // failed analyzing false // failed analyzing
} }
} }
@ -591,7 +593,7 @@ impl<TSys: FsMetadata + FsRead> SpecifierUnfurler<TSys> {
&self, &self,
url: &ModuleSpecifier, url: &ModuleSpecifier,
parsed_source: &ParsedSource, parsed_source: &ParsedSource,
module_info: &deno_graph::ModuleInfo, module_info: &deno_graph::analysis::ModuleInfo,
text_changes: &mut Vec<TextChange>, text_changes: &mut Vec<TextChange>,
diagnostic_reporter: &mut dyn FnMut(SpecifierUnfurlerDiagnostic), diagnostic_reporter: &mut dyn FnMut(SpecifierUnfurlerDiagnostic),
) { ) {
@ -757,7 +759,7 @@ mod tests {
use deno_config::workspace::ResolverWorkspaceJsrPackage; use deno_config::workspace::ResolverWorkspaceJsrPackage;
use deno_core::serde_json::json; use deno_core::serde_json::json;
use deno_core::url::Url; use deno_core::url::Url;
use deno_graph::ParserModuleAnalyzer; use deno_graph::ast::ParserModuleAnalyzer;
use deno_resolver::workspace::SloppyImportsOptions; use deno_resolver::workspace::SloppyImportsOptions;
use deno_runtime::deno_node::PackageJson; use deno_runtime::deno_node::PackageJson;
use deno_semver::Version; use deno_semver::Version;

View file

@ -29,9 +29,9 @@ use deno_core::url::Url;
use deno_core::LocalInspectorSession; use deno_core::LocalInspectorSession;
use deno_core::PollEventLoopOptions; use deno_core::PollEventLoopOptions;
use deno_error::JsErrorBox; use deno_error::JsErrorBox;
use deno_graph::analysis::SpecifierWithRange;
use deno_graph::Position; use deno_graph::Position;
use deno_graph::PositionRange; use deno_graph::PositionRange;
use deno_graph::SpecifierWithRange;
use deno_lib::util::result::any_and_jserrorbox_downcast_ref; use deno_lib::util::result::any_and_jserrorbox_downcast_ref;
use deno_runtime::worker::MainWorker; use deno_runtime::worker::MainWorker;
use deno_semver::npm::NpmPackageReqReference; use deno_semver::npm::NpmPackageReqReference;