fix(npm): better error is version is specified after subpath (#16131)

This commit is contained in:
Bartek Iwańczuk 2022-10-03 19:10:53 +02:00 committed by GitHub
parent 8e1b2fca59
commit 5b097fd7e5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 40 additions and 4 deletions

View file

@ -77,6 +77,18 @@ impl NpmPackageReference {
} else {
Some(parts[name_part_len..].join("/"))
};
if let Some(sub_path) = &sub_path {
if let Some(at_index) = sub_path.rfind('@') {
let (new_sub_path, version) = sub_path.split_at(at_index);
let msg = format!(
"Invalid package specifier 'npm:{}/{}'. Did you mean to write 'npm:{}{}/{}'?",
name, sub_path, name, version, new_sub_path
);
return Err(generic_error(msg));
}
}
Ok(NpmPackageReference {
req: NpmPackageReq { name, version_req },
sub_path,