diff options
Diffstat (limited to 'cli/tools')
-rw-r--r-- | cli/tools/doc.rs | 31 | ||||
-rw-r--r-- | cli/tools/lint.rs | 26 | ||||
-rw-r--r-- | cli/tools/repl/session.rs | 2 |
3 files changed, 26 insertions, 33 deletions
diff --git a/cli/tools/doc.rs b/cli/tools/doc.rs index b8d6b8a87..7b06dce05 100644 --- a/cli/tools/doc.rs +++ b/cli/tools/doc.rs @@ -10,7 +10,6 @@ use crate::display::write_json_to_stdout; use crate::display::write_to_stdout_ignore_sigpipe; use crate::factory::CliFactory; use crate::graph_util::graph_lock_or_exit; -use crate::graph_util::CreateGraphOptions; use crate::tsc::get_types_declaration_file_text; use crate::util::fs::collect_specifiers; use crate::util::glob::FilePatterns; @@ -20,10 +19,9 @@ use deno_core::anyhow::Context; use deno_core::error::AnyError; use deno_core::futures::FutureExt; use deno_doc as doc; -use deno_graph::CapturingModuleParser; -use deno_graph::DefaultParsedSourceStore; use deno_graph::GraphKind; use deno_graph::ModuleAnalyzer; +use deno_graph::ModuleParser; use deno_graph::ModuleSpecifier; use doc::DocDiagnostic; use indexmap::IndexMap; @@ -35,7 +33,7 @@ use std::sync::Arc; async fn generate_doc_nodes_for_builtin_types( doc_flags: DocFlags, cli_options: &Arc<CliOptions>, - capturing_parser: CapturingModuleParser<'_>, + parser: &dyn ModuleParser, analyzer: &dyn ModuleAnalyzer, ) -> Result<IndexMap<ModuleSpecifier, Vec<doc::DocNode>>, AnyError> { let source_file_specifier = @@ -65,7 +63,7 @@ async fn generate_doc_nodes_for_builtin_types( .await; let doc_parser = doc::DocParser::new( &graph, - capturing_parser, + parser, doc::DocParserOptions { diagnostics: false, private: doc_flags.private, @@ -80,19 +78,16 @@ pub async fn doc(flags: Flags, doc_flags: DocFlags) -> Result<(), AnyError> { let factory = CliFactory::from_flags(flags).await?; let cli_options = factory.cli_options(); let module_info_cache = factory.module_info_cache()?; - let source_parser = deno_graph::DefaultModuleParser::new_for_analysis(); - let store = DefaultParsedSourceStore::default(); - let analyzer = - module_info_cache.as_module_analyzer(Some(&source_parser), &store); - let capturing_parser = - CapturingModuleParser::new(Some(&source_parser), &store); + let parsed_source_cache = factory.parsed_source_cache(); + let capturing_parser = parsed_source_cache.as_capturing_parser(); + let analyzer = module_info_cache.as_module_analyzer(&capturing_parser); let doc_nodes_by_url = match doc_flags.source_files { DocSourceFileFlag::Builtin => { generate_doc_nodes_for_builtin_types( doc_flags.clone(), cli_options, - capturing_parser, + &capturing_parser, &analyzer, ) .await? @@ -123,14 +118,8 @@ pub async fn doc(flags: Flags, doc_flags: DocFlags) -> Result<(), AnyError> { }, |_, _| true, )?; - let mut loader = module_graph_builder.create_graph_loader(); let graph = module_graph_builder - .create_graph_with_options(CreateGraphOptions { - graph_kind: GraphKind::TypesOnly, - roots: module_specifiers.clone(), - loader: &mut loader, - analyzer: &analyzer, - }) + .create_graph(GraphKind::TypesOnly, module_specifiers.clone()) .await?; if let Some(lockfile) = maybe_lockfile { @@ -139,7 +128,7 @@ pub async fn doc(flags: Flags, doc_flags: DocFlags) -> Result<(), AnyError> { let doc_parser = doc::DocParser::new( &graph, - capturing_parser, + &capturing_parser, doc::DocParserOptions { private: doc_flags.private, diagnostics: doc_flags.lint, @@ -168,7 +157,7 @@ pub async fn doc(flags: Flags, doc_flags: DocFlags) -> Result<(), AnyError> { let deno_ns = generate_doc_nodes_for_builtin_types( doc_flags.clone(), cli_options, - capturing_parser, + &capturing_parser, &analyzer, ) .await?; diff --git a/cli/tools/lint.rs b/cli/tools/lint.rs index a91f14ad8..52890ae24 100644 --- a/cli/tools/lint.rs +++ b/cli/tools/lint.rs @@ -23,6 +23,7 @@ use deno_core::error::AnyError; use deno_core::error::JsStackFrame; use deno_core::serde_json; use deno_lint::diagnostic::LintDiagnostic; +use deno_lint::linter::LintFileOptions; use deno_lint::linter::Linter; use deno_lint::linter::LinterBuilder; use deno_lint::rules; @@ -249,14 +250,10 @@ pub fn print_rules_list(json: bool, maybe_rules_tags: Option<Vec<String>>) { } } -pub fn create_linter( - media_type: MediaType, - rules: Vec<&'static dyn LintRule>, -) -> Linter { +pub fn create_linter(rules: Vec<&'static dyn LintRule>) -> Linter { LinterBuilder::default() .ignore_file_directive("deno-lint-ignore-file") .ignore_diagnostic_directive("deno-lint-ignore") - .media_type(media_type) .rules(rules) .build() } @@ -266,12 +263,16 @@ fn lint_file( source_code: String, lint_rules: Vec<&'static dyn LintRule>, ) -> Result<(Vec<LintDiagnostic>, String), AnyError> { - let file_name = file_path.to_string_lossy().to_string(); + let filename = file_path.to_string_lossy().to_string(); let media_type = MediaType::from_path(file_path); - let linter = create_linter(media_type, lint_rules); + let linter = create_linter(lint_rules); - let (_, file_diagnostics) = linter.lint(file_name, source_code.clone())?; + let (_, file_diagnostics) = linter.lint_file(LintFileOptions { + filename, + media_type, + source_code: source_code.clone(), + })?; Ok((file_diagnostics, source_code)) } @@ -287,10 +288,13 @@ fn lint_stdin( return Err(generic_error("Failed to read from stdin")); } - let linter = create_linter(MediaType::TypeScript, lint_rules); + let linter = create_linter(lint_rules); - let (_, file_diagnostics) = - linter.lint(STDIN_FILE_NAME.to_string(), source_code.clone())?; + let (_, file_diagnostics) = linter.lint_file(LintFileOptions { + filename: STDIN_FILE_NAME.to_string(), + source_code: source_code.clone(), + media_type: MediaType::TypeScript, + })?; Ok((file_diagnostics, source_code)) } diff --git a/cli/tools/repl/session.rs b/cli/tools/repl/session.rs index 83cc60dd0..696f5c065 100644 --- a/cli/tools/repl/session.rs +++ b/cli/tools/repl/session.rs @@ -839,7 +839,7 @@ fn analyze_jsx_pragmas( let mut analyzed_pragmas = AnalyzedJsxPragmas::default(); - for c in parsed_source.get_leading_comments().iter() { + for c in parsed_source.get_leading_comments()?.iter() { if c.kind != CommentKind::Block { continue; // invalid } |