A Gleam WebSocket consumer for AT Protocol Jetstream events.

format

Changed files
+10 -14
src
+4 -8
src/goose.gleam
··· 63 63 64 64 /// Decompression context holder 65 65 type Decompressor { 66 - Decompressor( 67 - dctx: zstd.DecompressionContext, 68 - ddict: zstd.DecompressionDict, 69 - ) 66 + Decompressor(dctx: zstd.DecompressionContext, ddict: zstd.DecompressionDict) 70 67 } 71 68 72 69 /// Create a default configuration for US East endpoint ··· 261 258 262 259 // Start WebSocket connection 263 260 let result = 264 - stratus.new_with_initialiser( 265 - request: req, 266 - init: fn() { Ok(stratus.initialised(state)) }, 267 - ) 261 + stratus.new_with_initialiser(request: req, init: fn() { 262 + Ok(stratus.initialised(state)) 263 + }) 268 264 |> stratus.on_message(handle_message) 269 265 |> stratus.on_close(handle_close) 270 266 |> stratus.with_connect_timeout(30_000)
+6 -6
src/goose/stratus.gleam
··· 15 15 import gleam/result 16 16 import gleam/string 17 17 import gleam/uri 18 + import goose/stratus/internal/socket.{ 19 + type Socket, type SocketMessage, Cacerts, Once, Pull, Receive, 20 + } 21 + import goose/stratus/internal/ssl 22 + import goose/stratus/internal/tcp 23 + import goose/stratus/internal/transport.{type Transport, Ssl, Tcp} 18 24 import gramps/http as gramps_http 19 25 import gramps/websocket.{ 20 26 BinaryFrame, CloseFrame, Continuation, Control, Data as DataFrame, PingFrame, ··· 22 28 } 23 29 import gramps/websocket/compression 24 30 import logging 25 - import goose/stratus/internal/socket.{ 26 - type Socket, type SocketMessage, Cacerts, Once, Pull, Receive, 27 - } 28 - import goose/stratus/internal/ssl 29 - import goose/stratus/internal/tcp 30 - import goose/stratus/internal/transport.{type Transport, Ssl, Tcp} 31 31 32 32 /// This holds some information needed to communicate with the WebSocket. 33 33 pub opaque type Connection {