Skip to content
This repository was archived by the owner on Jul 17, 2024. It is now read-only.

Commit f9bbb16

Browse files
authored
fix: Fix yarn 2.4.3 version. (#38)
1 parent d1b8b50 commit f9bbb16

File tree

9 files changed

+39
-12
lines changed

9 files changed

+39
-12
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Changelog
22

3+
## 0.11.2
4+
5+
#### 🐞 Fixes
6+
7+
- Fixed yarn "2.4.3" not resolving or downloading correctly (it was published to the wrong package).
8+
39
## 0.11.1
410

511
#### 🚀 Updates

Cargo.lock

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/node-depman/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "node_depman_plugin"
3-
version = "0.11.1"
3+
version = "0.11.2"
44
edition = "2021"
55
license = "MIT"
66
publish = false

crates/node-depman/src/package_manager.rs

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,25 @@ impl PackageManager {
2525
}
2626

2727
pub fn get_package_name(&self, version: impl AsRef<UnresolvedVersionSpec>) -> String {
28-
if self.is_yarn_berry(version.as_ref()) {
29-
"@yarnpkg/cli-dist".into()
30-
} else {
31-
self.to_string()
28+
let version = version.as_ref();
29+
30+
if matches!(self, PackageManager::Yarn) {
31+
if let UnresolvedVersionSpec::Version(inner) = &version {
32+
// Version 2.4.3 was published to the wrong package. It should
33+
// have been published to `@yarnpkg/cli-dist` but was published
34+
// to `yarn`. So... we need to manually fix it.
35+
// https://www.npmjs.com/package/yarn?activeTab=versions
36+
if inner.major == 2 && inner.minor == 4 && inner.patch == 3 {
37+
return "yarn".into();
38+
}
39+
}
40+
41+
if self.is_yarn_berry(version) {
42+
return "@yarnpkg/cli-dist".into();
43+
}
3244
}
45+
46+
self.to_string()
3347
}
3448

3549
pub fn is_yarn_classic(&self, version: impl AsRef<UnresolvedVersionSpec>) -> bool {

crates/node-depman/src/proto.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -260,8 +260,8 @@ pub fn download_prebuilt(
260260

261261
let package_name = manager.get_package_name(version.to_unresolved_spec());
262262

263-
let package_without_scope = if package_name.contains('/') {
264-
package_name.split('/').nth(1).unwrap()
263+
let package_without_scope = if let Some(index) = package_name.find('/') {
264+
&package_name[index + 1..]
265265
} else {
266266
&package_name
267267
};

crates/node-depman/tests/download_test.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,13 @@ mod yarn {
153153
}
154154
}
155155

156+
mod yarn2 {
157+
use super::*;
158+
159+
// Special case
160+
generate_download_install_tests!("yarn-test", "2.4.3");
161+
}
162+
156163
mod yarn_berry {
157164
use super::*;
158165

crates/node-depman/tests/versions_test.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ mod yarn {
199199
"1" => "1.22.22",
200200
"2" => "2.4.3",
201201
"3" => "3.8.2",
202-
"berry" => "4.2.2",
202+
"berry" => "4.3.0",
203203
});
204204

205205
#[test]

crates/node/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "node_plugin"
3-
version = "0.11.1"
3+
version = "0.11.2"
44
edition = "2021"
55
license = "MIT"
66
publish = false

crates/node/tests/versions_test.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ generate_resolve_versions_tests!("node-test", {
66
"lts-gallium" => "16.20.2",
77
"lts/fermium" => "14.21.3",
88
"stable" => "20.14.0",
9-
"node" => "22.2.0",
9+
"node" => "22.3.0",
1010
});
1111

1212
#[test]

0 commit comments

Comments
 (0)