1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-01-03 04:48:52 -05:00

Revert "feat(lint): stabilize "deno lint" subcommand (#8075)" (#8128)

This reverts commit c5c48f845a.
This commit is contained in:
Bartek Iwańczuk 2020-10-26 13:36:13 +01:00 committed by GitHub
parent 78429496e0
commit aebbdd5cc2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 39 additions and 21 deletions

View file

@ -1000,18 +1000,18 @@ fn lint_subcommand<'a, 'b>() -> App<'a, 'b> {
.about("Lint source files")
.long_about(
"Lint JavaScript/TypeScript source code.
deno lint
deno lint myfile1.ts myfile2.js
deno lint --unstable
deno lint --unstable myfile1.ts myfile2.js
Print result as JSON:
deno lint --unstable --json
Read from stdin:
cat file.ts | deno lint -
cat file.ts | deno lint --unstable -
cat file.ts | deno lint --unstable --json -
List available rules:
deno lint --rules
deno lint --unstable --rules
Ignore diagnostics on the next line by preceding it with an ignore comment and
rule name:
@ -1036,6 +1036,7 @@ Ignore linting a file by adding an ignore comment at the top of the file:
.arg(
Arg::with_name("ignore")
.long("ignore")
.requires("unstable")
.takes_value(true)
.use_delimiter(true)
.require_equals(true)
@ -1045,7 +1046,6 @@ Ignore linting a file by adding an ignore comment at the top of the file:
Arg::with_name("json")
.long("json")
.help("Output lint result in JSON format")
.requires("unstable")
.takes_value(false),
)
.arg(
@ -1834,8 +1834,13 @@ mod tests {
#[test]
fn lint() {
let r =
flags_from_vec_safe(svec!["deno", "lint", "script_1.ts", "script_2.ts"]);
let r = flags_from_vec_safe(svec![
"deno",
"lint",
"--unstable",
"script_1.ts",
"script_2.ts"
]);
assert_eq!(
r.unwrap(),
Flags {
@ -1848,6 +1853,7 @@ mod tests {
json: false,
ignore: vec![],
},
unstable: true,
..Flags::default()
}
);
@ -1855,6 +1861,7 @@ mod tests {
let r = flags_from_vec_safe(svec![
"deno",
"lint",
"--unstable",
"--ignore=script_1.ts,script_2.ts"
]);
assert_eq!(
@ -1869,11 +1876,12 @@ mod tests {
PathBuf::from("script_2.ts")
],
},
unstable: true,
..Flags::default()
}
);
let r = flags_from_vec_safe(svec!["deno", "lint", "--rules"]);
let r = flags_from_vec_safe(svec!["deno", "lint", "--unstable", "--rules"]);
assert_eq!(
r.unwrap(),
Flags {
@ -1883,6 +1891,7 @@ mod tests {
json: false,
ignore: vec![],
},
unstable: true,
..Flags::default()
}
);

View file

@ -220,12 +220,16 @@ async fn install_command(
}
async fn lint_command(
_flags: Flags,
flags: Flags,
files: Vec<PathBuf>,
list_rules: bool,
ignore: Vec<PathBuf>,
json: bool,
) -> Result<(), AnyError> {
if !flags.unstable {
exit_unstable("lint");
}
if list_rules {
lint::print_rules_list();
return Ok(());

View file

@ -33,6 +33,7 @@ fn std_tests() {
fn std_lint() {
let status = util::deno_cmd()
.arg("lint")
.arg("--unstable")
.arg(format!(
"--ignore={}",
util::root_path().join("std/node/tests").to_string_lossy()
@ -2847,13 +2848,13 @@ itest!(deno_test_coverage {
});
itest!(deno_lint {
args: "lint lint/file1.js lint/file2.ts lint/ignored_file.ts",
args: "lint --unstable lint/file1.js lint/file2.ts lint/ignored_file.ts",
output: "lint/expected.out",
exit_code: 1,
});
itest!(deno_lint_quiet {
args: "lint --quiet lint/file1.js",
args: "lint --unstable --quiet lint/file1.js",
output: "lint/expected_quiet.out",
exit_code: 1,
});
@ -2866,19 +2867,19 @@ itest!(deno_lint_json {
});
itest!(deno_lint_ignore {
args: "lint --ignore=lint/file1.js,lint/malformed.js lint/",
args: "lint --unstable --ignore=lint/file1.js,lint/malformed.js lint/",
output: "lint/expected_ignore.out",
exit_code: 1,
});
itest!(deno_lint_glob {
args: "lint --ignore=lint/malformed.js lint/",
args: "lint --unstable --ignore=lint/malformed.js lint/",
output: "lint/expected_glob.out",
exit_code: 1,
});
itest!(deno_lint_from_stdin {
args: "lint -",
args: "lint --unstable -",
input: Some("let a: any;"),
output: "lint/expected_from_stdin.out",
exit_code: 1,
@ -2892,14 +2893,14 @@ itest!(deno_lint_from_stdin_json {
});
itest!(deno_lint_rules {
args: "lint --rules",
args: "lint --unstable --rules",
output: "lint/expected_rules.out",
exit_code: 0,
});
// Make sure that the rules are printed if quiet option is enabled.
itest!(deno_lint_rules_quiet {
args: "lint --rules -q",
args: "lint --unstable --rules -q",
output: "lint/expected_rules.out",
exit_code: 0,
});
@ -4060,6 +4061,7 @@ fn lint_ignore_unexplicit_files() {
let output = util::deno_cmd()
.current_dir(util::root_path())
.arg("lint")
.arg("--unstable")
.arg("--ignore=./")
.stderr(std::process::Stdio::piped())
.spawn()

View file

@ -2,15 +2,18 @@
Deno ships with a built in code linter for JavaScript and TypeScript.
**Note: linter is a new feature and still unstable thus it requires `--unstable`
flag**
```shell
# lint all JS/TS files in the current directory and subdirectories
deno lint
deno lint --unstable
# lint specific files
deno lint myfile1.ts myfile2.ts
# read from stdin
cat file.ts | deno lint -
# print result as JSON (output is subject to change hence --unstable flag)
deno lint --unstable myfile1.ts myfile2.ts
# print result as JSON
deno lint --unstable --json
# read from stdin
cat file.ts | deno lint --unstable -
```
For more detail, run `deno lint --help`.