1
0
Fork 0
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:
Bartek Iwańczuk 2024-12-10 23:25:29 +00:00 committed by GitHub
parent fe1be715d8
commit 7c8b55b584
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 46 additions and 0 deletions

View file

@ -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,

View file

@ -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": ""
}
]
},

View file

@ -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": ""
}
]
},

View file

@ -0,0 +1,6 @@
{
"tempDir": true,
"args": "outdated",
"exitCode": 1,
"output": "error: No deno.json or package.json in \"[WILDLINE]\".\n"
}

View file

@ -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": ""
}
]
},