diff options
author | 2023-10-04 22:46:21 -0700 | |
---|---|---|
committer | 2023-10-04 22:46:21 -0700 | |
commit | 4a2e1574e4d4001b60c96a315491dd622d7d54b6 (patch) | |
tree | 32db276faecd44d9a012e59bbf947e20e17055a5 /src/install/npm.zig | |
parent | 5a315f4df053a53e38086a839564e3d6d539bda9 (diff) | |
download | bun-4a2e1574e4d4001b60c96a315491dd622d7d54b6.tar.gz bun-4a2e1574e4d4001b60c96a315491dd622d7d54b6.tar.zst bun-4a2e1574e4d4001b60c96a315491dd622d7d54b6.zip |
fix semver and repository host bugs (#6312)
* releases before prereleases
* handle different repo hosts
* remove log
* Update bun-install.test.ts
* test for `bun add`
* gitlab test
* use comptime hash map, another test case
* don't need length
* bump timeout, use tld
* infer git dependencies for https and ssh
Diffstat (limited to 'src/install/npm.zig')
-rw-r--r-- | src/install/npm.zig | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/src/install/npm.zig b/src/install/npm.zig index 57fcf72b9..78d0f6061 100644 --- a/src/install/npm.zig +++ b/src/install/npm.zig @@ -798,29 +798,32 @@ pub const PackageManifest = struct { return this.findByVersion(left.version); } - const releases = this.pkg.releases.keys.get(this.versions); + if (this.findByDistTag("latest")) |result| { + if (group.satisfies(result.version)) { + return result; + } + } - if (group.flags.isSet(Semver.Query.Group.Flags.pre)) { - const prereleases = this.pkg.prereleases.keys.get(this.versions); - var i = prereleases.len; + { + const releases = this.pkg.releases.keys.get(this.versions); + var i = releases.len; + // For now, this is the dumb way while (i > 0) : (i -= 1) { - const version = prereleases[i - 1]; - const packages = this.pkg.prereleases.values.get(this.package_versions); + const version = releases[i - 1]; + const packages = this.pkg.releases.values.get(this.package_versions); if (group.satisfies(version)) { return .{ .version = version, .package = &packages[i - 1] }; } } - } else if (this.findByDistTag("latest")) |result| { - if (group.satisfies(result.version)) return result; } - { - var i = releases.len; - // // For now, this is the dumb way + if (group.flags.isSet(Semver.Query.Group.Flags.pre)) { + const prereleases = this.pkg.prereleases.keys.get(this.versions); + var i = prereleases.len; while (i > 0) : (i -= 1) { - const version = releases[i - 1]; - const packages = this.pkg.releases.values.get(this.package_versions); + const version = prereleases[i - 1]; + const packages = this.pkg.prereleases.values.get(this.package_versions); if (group.satisfies(version)) { return .{ .version = version, .package = &packages[i - 1] }; |