mirror of
https://github.com/oven-sh/bun
synced 2026-02-02 15:08:46 +00:00
better errors
Former-commit-id: a16d16ac2d649b3678d3baaa7a4641c7a56f5d6d
This commit is contained in:
13
src/cli.zig
13
src/cli.zig
@@ -46,7 +46,18 @@ pub const Cli = struct {
|
||||
var panicker = MainPanicHandler.init(log);
|
||||
MainPanicHandler.Singleton = &panicker;
|
||||
|
||||
try Command.start(allocator, log);
|
||||
Command.start(allocator, log) catch |err| {
|
||||
switch (err) {
|
||||
error.MissingEntryPoint => {
|
||||
Output.prettyErrorln("<r><red>MissingEntryPoint<r> what do you want to bundle?\n\n<d>Example:\n\n<r> <b><cyan>bun bun --use next<r>\n\n <b><cyan>bun bun ./src/index.ts ./src/file2.ts<r>\n", .{});
|
||||
Output.flush();
|
||||
std.os.exit(1);
|
||||
},
|
||||
else => {
|
||||
return err;
|
||||
},
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -272,7 +272,11 @@ pub const RequestContext = struct {
|
||||
200...299 => "YAY",
|
||||
304 => "NOT MODIFIED",
|
||||
300...303, 305...399 => "REDIRECT",
|
||||
400...499 => "bad request :'(",
|
||||
404 => "Not Found!",
|
||||
403 => "Not Allowed!",
|
||||
401 => "Login",
|
||||
402 => "Pay Me",
|
||||
400, 405...499 => "bad request :(",
|
||||
500...599 => "ERR",
|
||||
else => @compileError("Invalid code passed to printStatusLine"),
|
||||
};
|
||||
|
||||
@@ -412,15 +412,38 @@ pub fn NewResolver(cache_files: bool) type {
|
||||
var prefixed_package_buf: [512]u8 = undefined;
|
||||
// Prevent the extra lookup if the package is already prefixed, i.e. avoid "bun-framework-next-bun-framework-next"
|
||||
if (strings.startsWith(package, bunFrameworkPackagePrefix) or package.len + bunFrameworkPackagePrefix.len >= prefixed_package_buf.len) {
|
||||
return try r._resolveFramework(package, pair, preference, load_defines);
|
||||
return r._resolveFramework(package, pair, preference, load_defines) catch |err| {
|
||||
switch (err) {
|
||||
error.ModuleNotFound => {
|
||||
Output.prettyErrorln("<r><red>ResolveError<r> can't find framework: <b>\"{s}\"<r>.\n\nMaybe it's not installed? Try running this:\n\n <b>npm install -D {s}<r>\n <b>bun bun --use {s}<r>", .{ package, package, package });
|
||||
Output.flush();
|
||||
std.os.exit(1);
|
||||
},
|
||||
else => {
|
||||
return err;
|
||||
},
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
prefixed_package_buf[0..bunFrameworkPackagePrefix.len].* = bunFrameworkPackagePrefix.*;
|
||||
std.mem.copy(u8, prefixed_package_buf[bunFrameworkPackagePrefix.len..], package);
|
||||
return r._resolveFramework(prefixed_package_buf[0 .. bunFrameworkPackagePrefix.len + package.len], pair, preference, load_defines) catch |err| {
|
||||
const prefixed_name = prefixed_package_buf[0 .. bunFrameworkPackagePrefix.len + package.len];
|
||||
return r._resolveFramework(prefixed_name, pair, preference, load_defines) catch |err| {
|
||||
switch (err) {
|
||||
error.ModuleNotFound => {
|
||||
return try r._resolveFramework(package, pair, preference, load_defines);
|
||||
return r._resolveFramework(package, pair, preference, load_defines) catch |err2| {
|
||||
switch (err2) {
|
||||
error.ModuleNotFound => {
|
||||
Output.prettyErrorln("<r><red>ResolveError<r> can't find framework: <b>\"{s}\"<r>.\n\nMaybe it's not installed? Try running this:\n\n <b>npm install -D {s}\n <b>bun bun --use {s}<r>", .{ package, prefixed_name, package });
|
||||
Output.flush();
|
||||
std.os.exit(1);
|
||||
},
|
||||
else => {
|
||||
return err;
|
||||
},
|
||||
}
|
||||
};
|
||||
},
|
||||
else => {
|
||||
return err;
|
||||
@@ -429,7 +452,19 @@ pub fn NewResolver(cache_files: bool) type {
|
||||
};
|
||||
}
|
||||
|
||||
return try r._resolveFramework(package, pair, preference, load_defines);
|
||||
return r._resolveFramework(package, pair, preference, load_defines) catch |err| {
|
||||
switch (err) {
|
||||
error.ModuleNotFound => {
|
||||
Output.prettyError("<r><red>ResolveError<r> can't find local framework: <b>\"{s}\"<r>.", .{package});
|
||||
|
||||
Output.flush();
|
||||
std.os.exit(1);
|
||||
},
|
||||
else => {
|
||||
return err;
|
||||
},
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
fn _resolveFramework(
|
||||
|
||||
Reference in New Issue
Block a user