diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2024-02-06 15:57:10 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-06 15:57:10 -0500 |
commit | c6def993e052626be3933de4299bf4b2eb76e48a (patch) | |
tree | d377208be4e20bbefb51adb85e546a6f0e65c43b /cli/diagnostics.rs | |
parent | a6b2a4474e50952f28cb933ada0d698fc1055578 (diff) |
fix(publish): lazily parse sources (#22301)
Closes #22290
Diffstat (limited to 'cli/diagnostics.rs')
-rw-r--r-- | cli/diagnostics.rs | 7 |
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())) } } |