summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2022-06-23 01:17:49 +0200
committerGitHub <noreply@github.com>2022-06-23 01:17:49 +0200
commit1e3713c3bcd1d4c1ea49e1f49ee866380462baf2 (patch)
tree0981720f38956a3678d2128721565219841b1b01 /cli
parentca4385ad68810e8107984a07d625f5d8beeb50f3 (diff)
fix(fmt): ignore node_modules directory (#14943)
Diffstat (limited to 'cli')
-rw-r--r--cli/tests/integration/fmt_tests.rs8
-rw-r--r--cli/tools/fmt.rs33
2 files changed, 33 insertions, 8 deletions
diff --git a/cli/tests/integration/fmt_tests.rs b/cli/tests/integration/fmt_tests.rs
index 3f4bc15cb..048e9aa21 100644
--- a/cli/tests/integration/fmt_tests.rs
+++ b/cli/tests/integration/fmt_tests.rs
@@ -126,7 +126,7 @@ fn fmt_ignore_unexplicit_files() {
}
#[test]
-fn fmt_auto_ignore_git() {
+fn fmt_auto_ignore_git_and_node_modules() {
use std::fs::{create_dir_all, File};
use std::io::Write;
use std::path::PathBuf;
@@ -139,10 +139,16 @@ fn fmt_auto_ignore_git() {
let t = temp_dir.path().join("target");
let nest_git = t.join("nest").join(".git");
let git_dir = t.join(".git");
+ let nest_node_modules = t.join("nest").join("node_modules");
+ let node_modules_dir = t.join("node_modules");
create_dir_all(&nest_git).unwrap();
create_dir_all(&git_dir).unwrap();
+ create_dir_all(&nest_node_modules).unwrap();
+ create_dir_all(&node_modules_dir).unwrap();
create_bad_json(nest_git);
create_bad_json(git_dir);
+ create_bad_json(nest_node_modules);
+ create_bad_json(node_modules_dir);
let output = util::deno_cmd()
.current_dir(t)
.env("NO_COLOR", "1")
diff --git a/cli/tools/fmt.rs b/cli/tools/fmt.rs
index 4e399bcf5..7758f29f9 100644
--- a/cli/tools/fmt.rs
+++ b/cli/tools/fmt.rs
@@ -94,8 +94,11 @@ pub async fn format(
maybe_fmt_config.map(|c| c.options).unwrap_or_default(),
);
- let fmt_predicate =
- |path: &Path| is_supported_ext_fmt(path) && !is_contain_git(path);
+ let fmt_predicate = |path: &Path| {
+ is_supported_ext_fmt(path)
+ && !contains_git(path)
+ && !contains_node_modules(path)
+ };
let resolver = |changed: Option<Vec<PathBuf>>| {
let files_changed = changed.is_some();
@@ -730,10 +733,14 @@ fn is_supported_ext_fmt(path: &Path) -> bool {
}
}
-fn is_contain_git(path: &Path) -> bool {
+fn contains_git(path: &Path) -> bool {
path.components().any(|c| c.as_os_str() == ".git")
}
+fn contains_node_modules(path: &Path) -> bool {
+ path.components().any(|c| c.as_os_str() == "node_modules")
+}
+
#[cfg(test)]
mod test {
use super::*;
@@ -767,10 +774,22 @@ mod test {
#[test]
fn test_is_located_in_git() {
- assert!(is_contain_git(Path::new("test/.git")));
- assert!(is_contain_git(Path::new(".git/bad.json")));
- assert!(is_contain_git(Path::new("test/.git/bad.json")));
- assert!(!is_contain_git(Path::new("test/bad.git/bad.json")));
+ assert!(contains_git(Path::new("test/.git")));
+ assert!(contains_git(Path::new(".git/bad.json")));
+ assert!(contains_git(Path::new("test/.git/bad.json")));
+ assert!(!contains_git(Path::new("test/bad.git/bad.json")));
+ }
+
+ #[test]
+ fn test_is_located_in_node_modules() {
+ assert!(contains_node_modules(Path::new("test/node_modules")));
+ assert!(contains_node_modules(Path::new("node_modules/bad.json")));
+ assert!(contains_node_modules(Path::new(
+ "test/node_modules/bad.json"
+ )));
+ assert!(!contains_node_modules(Path::new(
+ "test/bad.node_modules/bad.json"
+ )));
}
#[test]