mirror of
https://github.com/denoland/deno.git
synced 2024-12-18 13:22:55 -05:00
fix(outdated): error when there are no config files (#27306)
This commit changes "deno outdated" subcommand to error out if run in a directory that has no config file (including parent directories). This matches "pnpm" behavior. Also added tests for filtering that yields no results, to ensure that it exists cleanly, that also matches "pnpm" behavior. Closes https://github.com/denoland/deno/issues/27287 --------- Signed-off-by: Bartek Iwańczuk <biwanczuk@gmail.com> Co-authored-by: David Sherret <dsherret@users.noreply.github.com>
This commit is contained in:
parent
fe1be715d8
commit
7c8b55b584
5 changed files with 46 additions and 0 deletions
|
@ -3,6 +3,7 @@
|
|||
use std::collections::HashSet;
|
||||
use std::sync::Arc;
|
||||
|
||||
use deno_core::anyhow::bail;
|
||||
use deno_core::error::AnyError;
|
||||
use deno_semver::package::PackageNv;
|
||||
use deno_semver::package::PackageReq;
|
||||
|
@ -197,6 +198,15 @@ pub async fn outdated(
|
|||
let jsr_fetch_resolver =
|
||||
Arc::new(JsrFetchResolver::new(file_fetcher.clone()));
|
||||
|
||||
if !cli_options.start_dir.has_deno_json()
|
||||
&& !cli_options.start_dir.has_pkg_json()
|
||||
{
|
||||
bail!(
|
||||
"No deno.json or package.json in \"{}\".",
|
||||
cli_options.initial_cwd().display(),
|
||||
);
|
||||
}
|
||||
|
||||
let args = dep_manager_args(
|
||||
&factory,
|
||||
cli_options,
|
||||
|
|
|
@ -27,6 +27,11 @@
|
|||
"args": "outdated",
|
||||
"output": "outdated.out"
|
||||
},
|
||||
{
|
||||
// Filtering that matches nothing, should exit cleanly
|
||||
"args": "outdated foobar",
|
||||
"output": ""
|
||||
},
|
||||
{
|
||||
// Respect `--quiet flag and don't print hint how to update
|
||||
"args": "outdated --quiet",
|
||||
|
@ -43,6 +48,11 @@
|
|||
{
|
||||
"args": "outdated --compatible",
|
||||
"output": "outdated_compatible.out"
|
||||
},
|
||||
{
|
||||
// Filtering that matches nothing, should exit cleanly
|
||||
"args": "outdated --compatible foobar",
|
||||
"output": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -26,6 +26,11 @@
|
|||
{
|
||||
"args": "outdated",
|
||||
"output": "print_outdated/root.out"
|
||||
},
|
||||
{
|
||||
// Filtering that matches nothing, should exit cleanly
|
||||
"args": "outdated foobar",
|
||||
"output": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -38,6 +43,11 @@
|
|||
{
|
||||
"args": "outdated --recursive",
|
||||
"output": "print_outdated/recursive.out"
|
||||
},
|
||||
{
|
||||
// Filtering that matches nothing, should exit cleanly
|
||||
"args": "outdated foobar",
|
||||
"output": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
6
tests/specs/update/no_config_file/__test__.jsonc
Normal file
6
tests/specs/update/no_config_file/__test__.jsonc
Normal file
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"tempDir": true,
|
||||
"args": "outdated",
|
||||
"exitCode": 1,
|
||||
"output": "error: No deno.json or package.json in \"[WILDLINE]\".\n"
|
||||
}
|
|
@ -25,6 +25,11 @@
|
|||
{
|
||||
"args": "outdated",
|
||||
"output": "outdated.out"
|
||||
},
|
||||
{
|
||||
// Filtering that matches nothing, should exit cleanly
|
||||
"args": "outdated foobar",
|
||||
"output": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -37,6 +42,11 @@
|
|||
{
|
||||
"args": "outdated --compatible",
|
||||
"output": "outdated_compatible.out"
|
||||
},
|
||||
{
|
||||
// Filtering that matches nothing, should exit cleanly
|
||||
"args": "outdated --compatible foobar",
|
||||
"output": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
Loading…
Reference in a new issue