diff options
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] }; |