diff --git a/src/bake/DevServer.zig b/src/bake/DevServer.zig index b89bb9aed3..33c6e29d85 100644 --- a/src/bake/DevServer.zig +++ b/src/bake/DevServer.zig @@ -896,6 +896,12 @@ pub fn attachRoutes(dev: *DevServer, server: anytype) !bool { dev, wrapGenericRequestHandler(onIncrementalVisualizer, is_ssl), ); + app.get( + internal_prefix ++ "/iv", + *DevServer, + dev, + redirectHandler(internal_prefix ++ "/incremental_visualizer", is_ssl), + ); } // Only attach a catch-all handler if the framework has filesystem router @@ -992,6 +998,22 @@ inline fn wrapGenericRequestHandler( }.handle; } +inline fn redirectHandler(comptime path: []const u8, comptime is_ssl: bool) fn ( + dev: *DevServer, + req: *Request, + resp: *uws.NewApp(is_ssl).Response, +) void { + return struct { + fn handle(dev: *DevServer, req: *Request, resp: *uws.NewApp(is_ssl).Response) void { + _ = dev; + _ = req; + resp.writeStatus("302 Found"); + resp.writeHeader("Location", path); + resp.endWithoutBody(false); + } + }.handle; +} + fn onIncrementalVisualizer(_: *DevServer, _: *Request, resp: anytype) void { resp.corked(onIncrementalVisualizerCorked, .{resp}); } @@ -1107,7 +1129,7 @@ fn ensureRouteIsBundled( switch (try checkRouteFailures(dev, route_bundle_index, resp)) { .stop => return, .ok => {}, // Errors were cleared or not in the way. - .rebuild => continue :sw .unqueued, + .rebuild => continue :sw .unqueued, // Do the build all over again } } @@ -1158,7 +1180,7 @@ fn checkRouteFailures( ) !enum { stop, ok, rebuild } { var sfa_state = std.heap.stackFallback(65536, dev.allocator); const sfa = sfa_state.get(); - var gts = try dev.initGraphTraceState(sfa); + var gts = try dev.initGraphTraceState(sfa, 0); defer gts.deinit(sfa); defer dev.incremental_result.failures_added.clearRetainingCapacity(); dev.graph_safety_lock.lock(); @@ -1349,7 +1371,7 @@ fn generateHTMLPayload(dev: *DevServer, route_bundle_index: RouteBundle.Index, r // Prepare bitsets for tracing var sfa_state = std.heap.stackFallback(65536, dev.allocator); const sfa = sfa_state.get(); - var gts = try dev.initGraphTraceState(sfa); + var gts = try dev.initGraphTraceState(sfa, 0); defer gts.deinit(sfa); // Run tracing dev.client_graph.reset(); @@ -1359,7 +1381,7 @@ fn generateHTMLPayload(dev: *DevServer, route_bundle_index: RouteBundle.Index, r const payload_size = bundled_html.len + ("").len * css_ids.len + - "".len + + "".len + client_prefix.len + "/".len + display_name.len + "-0000000000000000.js".len; @@ -1375,7 +1397,7 @@ fn generateHTMLPayload(dev: *DevServer, route_bundle_index: RouteBundle.Index, r } array.appendSliceAssumeCapacity(before_body_end); // Insert the client script tag before "" - array.appendSliceAssumeCapacity("