Skip to content

DenoSocket

Native Deno socket adapters for Effect sockets.

This module uses Deno-specific names: makeTcp, makeTcpChannel, layerTcp, and fromConn correspond to the Node platform's net and duplex APIs. Deno does not support keepAliveInitialDelay, and the noDelay and keepAlive options have no effect on Unix connections. A CloseEvent always closes gracefully because Deno has no equivalent of Node's reset-on-close.

9 exports Added in v4.0.0 Source

Constructors

fromConn

Added in v4.0.0 Source

Adapts a Deno connection into an Effect socket.

Signature

declare function fromConn<RO>(
open: Effect<Conn, SocketError, RO>,
): Effect<Socket, never, Exclude<RO, Scope>>;

makeTcp

Added in v4.0.0 Source

Opens a native Deno TCP or Unix connection as an Effect socket.

Details

An openTimeout interrupts acquisition but cannot cancel the in-flight Deno.connect promise. The scope finalizer closes a connection that arrives after the timeout.

Signature

declare function makeTcp(options: any): Effect<Socket>;

Creates a channel over a native Deno TCP or Unix connection.

Signature

declare function makeTcpChannel<IE = never>(
options: any,
): Channel<
readonly [Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>],
SocketError | IE,
void,
readonly [
string | Uint8Array<ArrayBufferLike> | CloseEvent,
string | Uint8Array<ArrayBufferLike> | CloseEvent,
],
IE
>;

Layers

layerTcp

Added in v4.0.0 Source

Provides a socket by opening a native Deno TCP or Unix connection.

Signature

declare const layerTcp: (options: ConnectOptions) => Layer.Layer<Socket.Socket, Socket.SocketError>;

Creates a socket layer connected to a URL with Deno's global WebSocket.

Signature

declare function layerWebSocket(
url: string,
options?: {
readonly closeCodeIsError?: (code: number) => boolean;
},
): Layer<Socket>;

Provides the WebSocket constructor backed by globalThis.WebSocket.

Signature

declare const layerWebSocketConstructor: Layer.Layer<Socket.WebSocketConstructor>;

Options

ConnectOptions type

Added in v4.0.0 Source

Options for opening a TCP or Unix connection.

Signature

type ConnectOptions =
| Deno.ConnectOptions
| (Deno.UnixConnectOptions & {
readonly keepAlive?: boolean;
readonly noDelay?: boolean;
});

TcpOptions type

Added in v4.0.0 Source

Options for opening a TCP or Unix connection.

Signature

type TcpOptions = ConnectOptions & {
readonly openTimeout?: Duration.Input;
};

Services

Conn

Added in v4.0.0 Source

Service tag for the underlying Deno connection.

Signature

declare class Conn extends Shape<"@effect/platform-deno/DenoSocket/Conn", Conn, this> {
constructor(_: never);
}