diff --git a/src/crash_handler.zig b/src/crash_handler.zig index 8d7323e20b..963d0080b2 100644 --- a/src/crash_handler.zig +++ b/src/crash_handler.zig @@ -308,6 +308,7 @@ pub fn handleRootError(err: anyerror, error_return_trace: ?*std.builtin.StackTra error.InvalidArgument, error.@"Invalid Bunfig", + error.InstallFailed, => if (!show_trace) Global.exit(1), error.SyntaxError => { diff --git a/src/install/install.zig b/src/install/install.zig index 5e0c2e0225..ded44f50d9 100644 --- a/src/install/install.zig +++ b/src/install/install.zig @@ -7389,15 +7389,35 @@ pub const PackageManager = struct { } pub inline fn update(ctx: Command.Context) !void { - try updatePackageJSONAndInstall(ctx, .update, .update); + try updatePackageJSONAndInstallCatchError(ctx, .update, .update); } pub inline fn add(ctx: Command.Context) !void { - try updatePackageJSONAndInstall(ctx, .add, .add); + try updatePackageJSONAndInstallCatchError(ctx, .add, .add); } pub inline fn remove(ctx: Command.Context) !void { - try updatePackageJSONAndInstall(ctx, .remove, .remove); + try updatePackageJSONAndInstallCatchError(ctx, .remove, .remove); + } + + pub fn updatePackageJSONAndInstallCatchError( + ctx: Command.Context, + comptime op: Lockfile.Package.Diff.Op, + comptime subcommand: Subcommand, + ) !void { + updatePackageJSONAndInstall(ctx, op, subcommand) catch |err| { + switch (err) { + error.InstallFailed, + error.InvalidPackageJSON, + => { + const log = &bun.CLI.Cli.log_; + log.printForLogLevel(bun.Output.errorWriter()) catch {}; + bun.Global.exit(1); + return; + }, + else => return err, + } + }; } pub inline fn link(ctx: Command.Context) !void { diff --git a/src/install/lockfile.zig b/src/install/lockfile.zig index dcf1aa336d..a5ca2fc54a 100644 --- a/src/install/lockfile.zig +++ b/src/install/lockfile.zig @@ -3799,10 +3799,6 @@ pub const Package = extern struct { } pub fn insert(self: *WorkspaceMap, key: string, value: Entry) !void { - if (comptime Environment.allow_assert) { - assert(!strings.containsChar(key, std.fs.path.sep_windows)); - } - if (comptime Environment.isDebug) { if (!bun.sys.exists(key)) { Output.debugWarn("WorkspaceMap.insert: key {s} does not exist", .{key});