summaryrefslogtreecommitdiff
path: root/cli/tools
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tools')
-rw-r--r--cli/tools/doc.rs31
-rw-r--r--cli/tools/lint.rs26
-rw-r--r--cli/tools/repl/session.rs2
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
}