Skip to content

Commit 5e2f12a

Browse files
author
LongYinan
committed
feat(deno-lint): respect .denolintignore file
1 parent 42d7f73 commit 5e2f12a

File tree

2 files changed

+25
-20
lines changed

2 files changed

+25
-20
lines changed

packages/deno-lint/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ edition = "2018"
88
crate-type = ["cdylib"]
99

1010
[dependencies]
11-
deno_lint = "=0.1.25"
11+
deno_lint = "=0.1.26"
1212
ignore = "0.4"
1313
napi = { version = "0.4" }
1414
napi-derive = { version = "0.4" }

packages/deno-lint/src/lib.rs

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ use deno_lint::diagnostic::LintDiagnostic;
1313
use deno_lint::linter::LinterBuilder;
1414
use deno_lint::rules::{get_all_rules, get_recommended_rules};
1515
use deno_lint::swc_util::get_default_ts_config;
16-
use ignore::overrides::OverrideBuilder;
1716
use ignore::types::TypesBuilder;
1817
use ignore::WalkBuilder;
1918
use napi::{CallContext, Error, JsBoolean, JsBuffer, JsObject, JsString, Module, Result, Status};
@@ -173,6 +172,10 @@ fn lint_command(ctx: CallContext) -> Result<JsBoolean> {
173172

174173
eslint_ignore_file.push(".eslintignore");
175174

175+
let mut denolint_ignore_file = cwd.clone();
176+
177+
denolint_ignore_file.push(".denolintignore");
178+
176179
let mut type_builder = TypesBuilder::new();
177180

178181
type_builder
@@ -189,27 +192,28 @@ fn lint_command(ctx: CallContext) -> Result<JsBoolean> {
189192
.build()
190193
.map_err(|e| Error::from_reason(format!("{}", e)))?;
191194

192-
let override_ignore = match fs::File::open(&eslint_ignore_file) {
193-
Ok(_) => OverrideBuilder::new(eslint_ignore_file)
194-
.build()
195-
.map_err(|e| {
196-
Error::from_reason(format!(
197-
"Create ignore rules from .eslintignore file failed {}",
198-
e
199-
))
200-
})?,
201-
Err(_) => OverrideBuilder::new(__dirname.as_str()?)
202-
.build()
203-
.map_err(|e| {
204-
Error::from_reason(format!(
205-
"Create ignore rules from .defaultignore file failed {}",
206-
e
207-
))
208-
})?,
195+
let ignore_file_path = match fs::File::open(&denolint_ignore_file) {
196+
Ok(_) => denolint_ignore_file
197+
.as_path()
198+
.to_str()
199+
.ok_or(Error::from_reason(format!(
200+
"Convert path to string failed: {:?}",
201+
&denolint_ignore_file
202+
)))?,
203+
Err(_) => match fs::File::open(&eslint_ignore_file) {
204+
Ok(_) => eslint_ignore_file
205+
.as_path()
206+
.to_str()
207+
.ok_or(Error::from_reason(format!(
208+
"Convert path to string failed: {:?}",
209+
&eslint_ignore_file
210+
)))?,
211+
Err(_) => __dirname.as_str()?,
212+
},
209213
};
210214

211215
for result in WalkBuilder::new(cwd)
212-
.overrides(override_ignore)
216+
.add_custom_ignore_filename(ignore_file_path)
213217
.types(types)
214218
.follow_links(true)
215219
.build()
@@ -220,6 +224,7 @@ fn lint_command(ctx: CallContext) -> Result<JsBoolean> {
220224
if !p.is_dir() {
221225
let file_content = fs::read_to_string(&p)
222226
.map_err(|e| Error::from_reason(format!("Read file {:?} failed: {}", p, e)))?;
227+
println!("{:?}", &p);
223228
let mut linter = LinterBuilder::default()
224229
.rules(if enable_all_rules {
225230
get_all_rules()

0 commit comments

Comments
 (0)