Auto-indexing service and GraphQL API for AT Protocol Records quickslice.slices.network/
atproto gleam graphql
at main 25 lines 882 B view raw
1--- a/server/build/packages/mist/src/mist/internal/http.gleam 2+++ b/server/build/packages/mist/src/mist/internal/http.gleam 3@@ -489,6 +489,9 @@ pub fn upgrade_socket( 4 |> result.replace_error(req), 5 ) 6 7+ // Check for WebSocket subprotocol (e.g., graphql-transport-ws) 8+ let protocol = request.get_header(req, "sec-websocket-protocol") 9+ 10 let permessage_deflate = websocket.has_deflate(extensions) 11 12 let accept_key = parse_websocket_key(key) 13@@ -500,6 +503,12 @@ pub fn upgrade_socket( 14 |> response.prepend_header("connection", "Upgrade") 15 |> response.prepend_header("sec-websocket-accept", accept_key) 16 17+ // Add subprotocol header if requested 18+ let resp = case protocol { 19+ Ok(proto) -> response.prepend_header(resp, "sec-websocket-protocol", proto) 20+ Error(_) -> resp 21+ } 22+ 23 case permessage_deflate { 24 True -> 25 Ok(response.prepend_header(