aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/install/install.zig23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/install/install.zig b/src/install/install.zig
index ddad15dd9..54131fc2a 100644
--- a/src/install/install.zig
+++ b/src/install/install.zig
@@ -4771,10 +4771,15 @@ pub const PackageManager = struct {
ast_modifier: {
// Try to use the existing spot in the dependencies list if possible
for (updates) |*update| {
- outer: for (dependency_lists_to_check) |list| {
+ for (dependency_lists_to_check) |list| {
if (current_package_json.asProperty(list)) |query| {
if (query.expr.data == .e_object) {
- if (query.expr.asProperty(update.name)) |value| {
+ if (query.expr.asProperty(
+ if (update.is_aliased)
+ update.name
+ else
+ update.version.literal.slice(update.version_buf),
+ )) |value| {
if (value.expr.data == .e_string) {
if (!update.resolved_name.isEmpty() and strings.eql(list, dependency_list)) {
replacing += 1;
@@ -4783,7 +4788,7 @@ pub const PackageManager = struct {
remaining -= 1;
}
}
- break :outer;
+ break;
}
}
}
@@ -4811,7 +4816,13 @@ pub const PackageManager = struct {
var k: usize = 0;
while (k < new_dependencies.len) : (k += 1) {
if (new_dependencies[k].key) |key| {
- if (key.data.e_string.eql(string, update.name)) {
+ if (key.data.e_string.eql(
+ string,
+ if (update.is_aliased)
+ update.name
+ else
+ update.version.literal.slice(update.version_buf),
+ )) {
if (update.resolved_name.isEmpty()) {
// This actually is a duplicate
// like "react" appearing in both "dependencies" and "optionalDependencies"
@@ -4832,8 +4843,10 @@ pub const PackageManager = struct {
new_dependencies[k].key = try JSAst.Expr.init(
JSAst.E.String,
JSAst.E.String{
- .data = try allocator.dupe(u8, if (update.is_aliased or update.resolved_name.isEmpty())
+ .data = try allocator.dupe(u8, if (update.is_aliased)
update.name
+ else if (update.resolved_name.isEmpty())
+ update.version.literal.slice(update.version_buf)
else
update.resolved_name.slice(update.version_buf)),
},