aboutsummaryrefslogtreecommitdiff
path: root/src/logger.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/logger.zig')
-rw-r--r--src/logger.zig27
1 files changed, 24 insertions, 3 deletions
diff --git a/src/logger.zig b/src/logger.zig
index 1481eb9b7..42c033c25 100644
--- a/src/logger.zig
+++ b/src/logger.zig
@@ -432,6 +432,13 @@ pub const Msg = struct {
};
}
+ pub fn toJS(this: Msg, globalObject: *bun.JSC.JSGlobalObject, allocator: std.mem.Allocator) JSC.JSValue {
+ return switch (this.metadata) {
+ .build => JSC.BuildMessage.create(globalObject, allocator, this).?.value(),
+ .resolve => JSC.ResolveMessage.create(globalObject, allocator, this, "").?.value(),
+ };
+ }
+
pub fn count(this: *const Msg, builder: *StringBuilder) void {
this.data.count(builder);
if (this.notes) |notes| {
@@ -709,16 +716,16 @@ pub const Log = struct {
0 => return JSC.JSValue.jsUndefined(),
1 => {
const msg = msgs[0];
- return JSC.JSValue.fromRef(JSC.BuildError.create(global, allocator, msg));
+ return JSC.JSValue.fromRef(JSC.BuildMessage.create(global, allocator, msg));
},
else => {
for (msgs[0..count], 0..) |msg, i| {
switch (msg.metadata) {
.build => {
- errors_stack[i] = JSC.BuildError.create(global, allocator, msg).?;
+ errors_stack[i] = JSC.BuildMessage.create(global, allocator, msg).?;
},
.resolve => {
- errors_stack[i] = JSC.ResolveError.create(global, allocator, msg, "").?;
+ errors_stack[i] = JSC.ResolveMessage.create(global, allocator, msg, "").?;
},
}
}
@@ -729,6 +736,20 @@ pub const Log = struct {
}
}
+ pub fn toJSArray(this: Log, global: *JSC.JSGlobalObject, allocator: std.mem.Allocator) JSC.JSValue {
+ const msgs: []const Msg = this.msgs.items;
+ var errors_stack: [256]*anyopaque = undefined;
+
+ const count = @intCast(u16, @min(msgs.len, errors_stack.len));
+ var arr = JSC.JSValue.createEmptyArray(global, count);
+
+ for (msgs[0..count], 0..) |msg, i| {
+ arr.putIndex(global, @intCast(u32, i), msg.toJS(global, allocator));
+ }
+
+ return arr;
+ }
+
pub fn cloneTo(self: *Log, other: *Log) !void {
var notes_count: usize = 0;