summaryrefslogtreecommitdiff
path: root/cli/diagnostics.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2024-02-06 15:57:10 -0500
committerGitHub <noreply@github.com>2024-02-06 15:57:10 -0500
commitc6def993e052626be3933de4299bf4b2eb76e48a (patch)
treed377208be4e20bbefb51adb85e546a6f0e65c43b /cli/diagnostics.rs
parenta6b2a4474e50952f28cb933ada0d698fc1055578 (diff)
fix(publish): lazily parse sources (#22301)
Closes #22290
Diffstat (limited to 'cli/diagnostics.rs')
-rw-r--r--cli/diagnostics.rs7
1 files changed, 4 insertions, 3 deletions
diff --git a/cli/diagnostics.rs b/cli/diagnostics.rs
index 846cd7751..0a674a2c4 100644
--- a/cli/diagnostics.rs
+++ b/cli/diagnostics.rs
@@ -11,10 +11,11 @@ use deno_ast::SourcePos;
use deno_ast::SourceRange;
use deno_ast::SourceRanged;
use deno_ast::SourceTextInfo;
-use deno_graph::ParsedSourceStore;
use deno_runtime::colors;
use unicode_width::UnicodeWidthStr;
+use crate::cache::LazyGraphSourceParser;
+
pub trait SourceTextStore {
fn get_source_text<'a>(
&'a self,
@@ -22,14 +23,14 @@ pub trait SourceTextStore {
) -> Option<Cow<'a, SourceTextInfo>>;
}
-pub struct SourceTextParsedSourceStore<'a>(pub &'a dyn ParsedSourceStore);
+pub struct SourceTextParsedSourceStore<'a>(pub LazyGraphSourceParser<'a>);
impl SourceTextStore for SourceTextParsedSourceStore<'_> {
fn get_source_text<'a>(
&'a self,
specifier: &ModuleSpecifier,
) -> Option<Cow<'a, SourceTextInfo>> {
- let parsed_source = self.0.get_parsed_source(specifier)?;
+ let parsed_source = self.0.get_or_parse_source(specifier).ok()??;
Some(Cow::Owned(parsed_source.text_info().clone()))
}
}