Skip to content

DevToolsServer.ts

Runs the server side of the unstable Effect devtools socket protocol.

Use this module when an integration needs to accept devtools clients over a SocketServer, decode newline-delimited JSON messages, and handle each connection with application-specific logic. It does not interpret spans or metrics itself; it gives handlers a typed surface for the telemetry described by DevToolsSchema.

Since v4.0.0



Runs the devtools socket server.

Details

Each connection is decoded as NDJSON devtools protocol messages, Ping requests are answered with Pong, and all other requests are delivered through the Client passed to the handler.

Signature

declare const run: <_, E, R>(
handle: (client: Client) => Effect.Effect<_, E, R>
) => Effect.Effect<never, SocketServer.SocketServerError, R | SocketServer.SocketServer>

Source

Since v4.0.0

Handle for a connected devtools client.

Details

It exposes a queue of non-ping requests received from the socket and a send function for non-pong responses.

Signature

export interface Client {
readonly queue: Queue.Dequeue<DevToolsSchema.Request.WithoutPing>
readonly send: (_: DevToolsSchema.Response.WithoutPong) => Effect.Effect<void>
}

Source

Since v4.0.0