1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-21 15:04:11 -05:00

fix: update hint for deno add <package> (#25455)

Follow up to https://github.com/denoland/deno/pull/25430
This commit is contained in:
Bartek Iwańczuk 2024-09-05 10:08:22 +01:00 committed by GitHub
parent 2c4d99a458
commit 5dc907df87
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 27 additions and 22 deletions

View file

@ -735,8 +735,8 @@ pub fn enhanced_resolution_error_message(error: &ResolutionError) -> String {
} else {
get_import_prefix_missing_error(error).map(|specifier| {
format!(
"If you want to use a JSR or npm package, try running `deno add {}`",
specifier
"If you want to use a JSR or npm package, try running `deno add jsr:{}` or `deno add npm:{}`",
specifier, specifier
)
})
};
@ -881,11 +881,14 @@ fn get_import_prefix_missing_error(error: &ResolutionError) -> Option<&str> {
let mut maybe_specifier = None;
if let ResolutionError::InvalidSpecifier {
error: SpecifierError::ImportPrefixMissing { specifier, .. },
..
range,
} = error
{
if range.specifier.scheme() == "file" {
maybe_specifier = Some(specifier);
} else if let ResolutionError::ResolverError { error, .. } = error {
}
} else if let ResolutionError::ResolverError { error, range, .. } = error {
if range.specifier.scheme() == "file" {
match error.as_ref() {
ResolveError::Specifier(specifier_error) => {
if let SpecifierError::ImportPrefixMissing { specifier, .. } =
@ -895,14 +898,16 @@ fn get_import_prefix_missing_error(error: &ResolutionError) -> Option<&str> {
}
}
ResolveError::Other(other_error) => {
if let Some(SpecifierError::ImportPrefixMissing { specifier, .. }) =
other_error.downcast_ref::<SpecifierError>()
if let Some(SpecifierError::ImportPrefixMissing {
specifier, ..
}) = other_error.downcast_ref::<SpecifierError>()
{
maybe_specifier = Some(specifier);
}
}
}
}
}
// NOTE(bartlomieju): For now, return None if a specifier contains a dot or a space. This is because
// suggesting to `deno add bad-module.ts` makes no sense and is worse than not providing

View file

@ -1,3 +1,3 @@
[WILDCARD]error: Relative import path "foo" not prefixed with / or ./ or ../
hint: If you want to use a JSR or npm package, try running `deno add foo`
hint: If you want to use a JSR or npm package, try running `deno add jsr:foo` or `deno add npm:foo`
at file:///[WILDCARD]/095_cache_with_bare_import.ts:[WILDCARD]

View file

@ -1,3 +1,3 @@
[WILDCARD]error: Relative import path "foo" not prefixed with / or ./ or ../
hint: If you want to use a JSR or npm package, try running `deno add foo`
hint: If you want to use a JSR or npm package, try running `deno add jsr:foo` or `deno add npm:foo`
at file:///[WILDCARD]/095_cache_with_bare_import.ts:[WILDCARD]

View file

@ -1,3 +1,3 @@
error: Relative import path "@std/dotenv/load" not prefixed with / or ./ or ../
hint: If you want to use a JSR or npm package, try running `deno add @std/dotenv/load`
hint: If you want to use a JSR or npm package, try running `deno add jsr:@std/dotenv/load` or `deno add npm:@std/dotenv/load`
at [WILDCARD]bare_specifier_without_import/main.ts:1:8

View file

@ -1,3 +1,3 @@
[WILDCARD]error: Failed resolving types. Relative import path "baz" not prefixed with / or ./ or ../
hint: If you want to use a JSR or npm package, try running `deno add baz`
hint: If you want to use a JSR or npm package, try running `deno add jsr:baz` or `deno add npm:baz`
at [WILDCARD]/type_definitions/bar.d.ts:[WILDCARD]

View file

@ -1,5 +1,5 @@
[WILDCARD]Config file found at '[WILDCARD]with_package_json[WILDCARD]with_stop[WILDCARD]some[WILDCARD]nested[WILDCARD]deno.json'
[WILDCARD]
error: Relative import path "chalk" not prefixed with / or ./ or ../
hint: If you want to use a JSR or npm package, try running `deno add chalk`
hint: If you want to use a JSR or npm package, try running `deno add jsr:chalk` or `deno add npm:chalk`
at file:///[WILDCARD]with_package_json/with_stop/some/nested/dir/main.ts:3:19