Skip to content

Commit 534be10

Browse files
committed
fix(deno-lint): missing media type config
1 parent e684c2b commit 534be10

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

packages/deno-lint/src/lib.rs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@ extern crate napi_derive;
77
use std::env;
88
use std::fs;
99
use std::path;
10+
use std::path::Path;
1011
use std::str;
1112

13+
use deno_ast::MediaType;
1214
use deno_lint::linter::LinterBuilder;
1315
use deno_lint::rules::{get_all_rules, get_recommended_rules};
1416
use ignore::types::TypesBuilder;
@@ -36,6 +38,17 @@ fn init(mut exports: JsObject) -> Result<()> {
3638
Ok(())
3739
}
3840

41+
#[inline(always)]
42+
fn get_media_type(p: &Path) -> MediaType {
43+
match p.extension().and_then(|e| e.to_str()) {
44+
Some("tsx") => MediaType::Tsx,
45+
Some("jsx") => MediaType::Jsx,
46+
Some("js") | Some("mjs") => MediaType::JavaScript,
47+
Some("ts") => MediaType::TypeScript,
48+
_ => MediaType::Tsx,
49+
}
50+
}
51+
3952
#[js_function(3)]
4053
fn lint(ctx: CallContext) -> Result<JsObject> {
4154
let file_name = ctx.get::<JsString>(0)?.into_utf8()?;
@@ -47,6 +60,7 @@ fn lint(ctx: CallContext) -> Result<JsObject> {
4760
} else {
4861
get_recommended_rules()
4962
})
63+
.media_type(get_media_type(Path::new(file_name.as_str()?)))
5064
.ignore_diagnostic_directive("eslint-disable-next-line")
5165
.build();
5266

@@ -147,7 +161,7 @@ fn lint_command(ctx: CallContext) -> Result<JsBoolean> {
147161
.types(types)
148162
.follow_links(true);
149163
for i in cfg_ignore_files {
150-
dir_walker.add_custom_ignore_filename(i);
164+
dir_walker.add_ignore(i);
151165
}
152166
for entry in dir_walker.build().filter_map(|v| v.ok()) {
153167
let p = entry.path();
@@ -157,6 +171,7 @@ fn lint_command(ctx: CallContext) -> Result<JsBoolean> {
157171

158172
let linter = LinterBuilder::default()
159173
.rules(rules.clone())
174+
.media_type(get_media_type(p))
160175
.ignore_file_directive("eslint-disable")
161176
.ignore_diagnostic_directive("eslint-disable-next-line")
162177
.build();

0 commit comments

Comments
 (0)