diff options
author | 2022-10-17 03:33:37 -0700 | |
---|---|---|
committer | 2022-10-17 03:33:37 -0700 | |
commit | abbde39a02a57166da0c43663bae85d78823a5f1 (patch) | |
tree | 91b28e1121acc1afd6b422702e9127b7b6d02030 /src/bun.js | |
parent | e1a17aff4c1b8a10c243a7e9a0e990380f42f615 (diff) | |
download | bun-abbde39a02a57166da0c43663bae85d78823a5f1.tar.gz bun-abbde39a02a57166da0c43663bae85d78823a5f1.tar.zst bun-abbde39a02a57166da0c43663bae85d78823a5f1.zip |
Clean up some code
Diffstat (limited to 'src/bun.js')
-rw-r--r-- | src/bun.js/api/server.zig | 62 | ||||
-rw-r--r-- | src/bun.js/bindings/generated_classes.zig | 7 |
2 files changed, 35 insertions, 34 deletions
diff --git a/src/bun.js/api/server.zig b/src/bun.js/api/server.zig index ea4625f73..b4a351089 100644 --- a/src/bun.js/api/server.zig +++ b/src/bun.js/api/server.zig @@ -3300,15 +3300,16 @@ pub fn NewServer(comptime ssl_enabled_: bool, comptime debug_mode_: bool) type { } var data_value = JSC.JSValue.zero; + + // if we converted a HeadersInit to a Headers object, we need to free it var fetch_headers_to_deref: ?*JSC.FetchHeaders = null; + defer { if (fetch_headers_to_deref) |fh| { fh.deref(); } } - - if (optional) |opts| { getter: { if (opts.isEmptyOrUndefinedOrNull()) { @@ -3320,47 +3321,40 @@ pub fn NewServer(comptime ssl_enabled_: bool, comptime debug_mode_: bool) type { return JSValue.jsUndefined(); } - if (opts.fastGet(globalThis, .headers)) |headers_value| { - if (headers_value.as(JSC.FetchHeaders)) |fetch_headers| { - if (fetch_headers.fastGet(.SecWebSocketProtocol)) |protocol| { - sec_websocket_protocol = protocol; - } - - if (fetch_headers.fastGet(.SecWebSocketExtensions)) |protocol| { - sec_websocket_extensions = protocol; - } - - // we must write the status first so that 200 OK isn't written - upgrader.resp.writeStatus("101 Switching Protocols"); + if (opts.fastGet(globalThis, .data)) |headers_value| { + data_value = headers_value; + } - fetch_headers.toUWSResponse(comptime ssl_enabled, upgrader.resp); + if (opts.fastGet(globalThis, .headers)) |headers_value| { + if (headers_value.isEmptyOrUndefinedOrNull()) { break :getter; - } else if (headers_value.isObject()) { - if (JSC.FetchHeaders.createFromJS(globalThis, headers_value)) |fetch_headers| { - if (fetch_headers.fastGet(.SecWebSocketProtocol)) |protocol| { - sec_websocket_protocol = protocol; - } + } - if (fetch_headers.fastGet(.SecWebSocketExtensions)) |protocol| { - sec_websocket_extensions = protocol; + var fetch_headers_to_use: *JSC.FetchHeaders = headers_value.as(JSC.FetchHeaders) orelse brk: { + if (headers_value.isObject()) { + if (JSC.FetchHeaders.createFromJS(globalThis, headers_value)) |fetch_headers| { + fetch_headers_to_deref = fetch_headers; + break :brk fetch_headers; } - - // we must write the status first so that 200 OK isn't written - upgrader.resp.writeStatus("101 Switching Protocols"); - - fetch_headers.toUWSResponse(comptime ssl_enabled, upgrader.resp); - fetch_headers_to_deref = fetch_headers; } + break :brk null; + } orelse { + JSC.throwInvalidArguments("upgrade options.headers must be a Headers or an object", .{}, globalThis, exception); + return JSValue.jsUndefined(); + }; - break :getter; + if (fetch_headers_to_use.fastGet(.SecWebSocketProtocol)) |protocol| { + sec_websocket_protocol = protocol; } - JSC.throwInvalidArguments("upgrade options.headers must be a Headers or an object", .{}, globalThis, exception); - return JSValue.jsUndefined(); - } + if (fetch_headers_to_use.fastGet(.SecWebSocketExtensions)) |protocol| { + sec_websocket_extensions = protocol; + } - if (opts.fastGet(globalThis, .data)) |headers_value| { - data_value = headers_value; + // TODO: should we cork? + // we must write the status first so that 200 OK isn't written + upgrader.resp.writeStatus("101 Switching Protocols"); + fetch_headers_to_use.toUWSResponse(comptime ssl_enabled, upgrader.resp); } } } diff --git a/src/bun.js/bindings/generated_classes.zig b/src/bun.js/bindings/generated_classes.zig index 7c954c0c1..6649881ac 100644 --- a/src/bun.js/bindings/generated_classes.zig +++ b/src/bun.js/bindings/generated_classes.zig @@ -820,6 +820,11 @@ pub const JSServerWebSocket = struct { @compileLog("ServerWebSocket.finalize is not a finalizer"); } + if (@TypeOf(ServerWebSocket.getBinaryType) != GetterType) + @compileLog("Expected ServerWebSocket.getBinaryType to be a getter"); + + if (@TypeOf(ServerWebSocket.setBinaryType) != SetterType) + @compileLog("Expected ServerWebSocket.setBinaryType to be a setter"); if (@TypeOf(ServerWebSocket.close) != CallbackType) @compileLog("Expected ServerWebSocket.close to be a callback"); if (@TypeOf(ServerWebSocket.cork) != CallbackType) @@ -852,6 +857,7 @@ pub const JSServerWebSocket = struct { @export(ServerWebSocket.constructor, .{ .name = "ServerWebSocketClass__construct" }); @export(ServerWebSocket.cork, .{ .name = "ServerWebSocketPrototype__cork" }); @export(ServerWebSocket.finalize, .{ .name = "ServerWebSocketClass__finalize" }); + @export(ServerWebSocket.getBinaryType, .{ .name = "ServerWebSocketPrototype__getBinaryType" }); @export(ServerWebSocket.getBufferedAmount, .{ .name = "ServerWebSocketPrototype__getBufferedAmount" }); @export(ServerWebSocket.getData, .{ .name = "ServerWebSocketPrototype__getData" }); @export(ServerWebSocket.getReadyState, .{ .name = "ServerWebSocketPrototype__getReadyState" }); @@ -859,6 +865,7 @@ pub const JSServerWebSocket = struct { @export(ServerWebSocket.isSubscribed, .{ .name = "ServerWebSocketPrototype__isSubscribed" }); @export(ServerWebSocket.publish, .{ .name = "ServerWebSocketPrototype__publish" }); @export(ServerWebSocket.send, .{ .name = "ServerWebSocketPrototype__send" }); + @export(ServerWebSocket.setBinaryType, .{ .name = "ServerWebSocketPrototype__setBinaryType" }); @export(ServerWebSocket.setData, .{ .name = "ServerWebSocketPrototype__setData" }); @export(ServerWebSocket.subscribe, .{ .name = "ServerWebSocketPrototype__subscribe" }); @export(ServerWebSocket.unsubscribe, .{ .name = "ServerWebSocketPrototype__unsubscribe" }); |