Skip to content
Effect Days 2026 Get your ticket

Socket

33 exports Added in v1.0.0 Source

Combinators

toChannel

Added in v1.0.0 Source

Signature

declare function toChannel<IE>(self: Socket): Channel<Chunk<Uint8Array<ArrayBufferLike>>, Chunk<string | Uint8Array<ArrayBufferLike> | CloseEvent>, SocketError | IE, IE, void, unknown>

toChannelMap

Added in v1.0.0 Source

Signature

declare function toChannelMap<IE, A>(self: Socket, f: (data: string | Uint8Array<ArrayBufferLike>) => A): Channel<Chunk<A>, Chunk<string | Uint8Array<ArrayBufferLike> | CloseEvent>, SocketError | IE, IE, void, unknown>

Signature

declare const toChannelString: {
(encoding?: string): <IE>(self: Socket) => Channel<Chunk<string>, Chunk<string | Uint8Array<ArrayBufferLike> | CloseEvent>, SocketError | IE, IE, void, unknown>;
<IE>(self: Socket, encoding?: string): Channel<Chunk<string>, Chunk<string | Uint8Array<ArrayBufferLike> | CloseEvent>, SocketError | IE, IE, void, unknown>;
}

Signature

declare function toChannelWith<IE = never>(): (self: Socket) => Channel<Chunk<Uint8Array<ArrayBufferLike>>, Chunk<string | Uint8Array<ArrayBufferLike> | CloseEvent>, SocketError | IE, IE, void, unknown>

Constructors

Signature

declare function fromTransformStream<R>(acquire: Effect<InputTransformStream, SocketError, R>, options?: {
readonly closeCodeIsError?: (code: number) => boolean;
}): Effect<Socket, never, Exclude<R, Scope>>

Signature

declare function fromWebSocket<RO>(acquire: Effect<WebSocket, SocketError, RO>, options?: {
readonly closeCodeIsError?: (code: number) => boolean;
readonly openTimeout?: any;
}): Effect<Socket, never, Exclude<RO, Scope>>

makeChannel

Added in v1.0.0 Source

Signature

declare function makeChannel<IE = never>(): Channel<Chunk<Uint8Array<ArrayBufferLike>>, Chunk<string | Uint8Array<ArrayBufferLike> | CloseEvent>, SocketError | IE, IE, void, unknown, Socket>

Signature

declare function makeWebSocket(url: string | Effect<string, never, never>, options?: {
readonly closeCodeIsError?: (code: number) => boolean;
readonly openTimeout?: any;
readonly protocols?: string | Array<string>;
}): Effect<Socket, never, WebSocketConstructor>

Signature

declare function makeWebSocketChannel<IE = never>(url: string, options?: {
readonly closeCodeIsError?: (code: number) => boolean;
}): Channel<Chunk<Uint8Array<ArrayBufferLike>>, Chunk<string | Uint8Array<ArrayBufferLike> | CloseEvent>, SocketError | IE, IE, void, unknown, WebSocketConstructor>

Errors

Signature

declare class SocketCloseError extends YieldableError<this> & Record<typeof SocketErrorTypeId, typeof SocketErrorTypeId> & {
readonly _tag: "SocketError";
} & Readonly<{
readonly closeReason?: string;
readonly code: number;
readonly reason: "Close";
}> {
constructor(args: {
readonly closeReason?: string;
readonly code: number;
readonly reason: "Close";
});
message: string;
static is(u: unknown): u is SocketCloseError;
static isClean(isClean: (code: number) => boolean): (u: unknown) => u is SocketCloseError;
}

SocketError type

Added in v1.0.0 Source

Signature

type SocketError = SocketGenericError | SocketCloseError

Signature

declare class SocketGenericError extends YieldableError<this> & Record<typeof SocketErrorTypeId, typeof SocketErrorTypeId> & {
readonly _tag: "SocketError";
} & Readonly<{
readonly cause: unknown;
readonly reason: "Write" | "Read" | "Open" | "OpenTimeout";
}> {
constructor(args: {
readonly cause: unknown;
readonly reason: "Write" | "Read" | "Open" | "OpenTimeout";
});
message: string;
}

Fiber Refs

Signature

declare const currentSendQueueCapacity: FiberRef.FiberRef<number>

Guards

isSocket

Added in v1.0.0 Source

Signature

declare function isSocket(u: unknown): u is Socket

Layers

Signature

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

Signature

declare const layerWebSocketConstructorGlobal: Layer.Layer<WebSocketConstructor>

Models

CloseEvent

Added in v1.0.0 Source

Signature

declare class CloseEvent {
constructor(code: number, reason?: string);
readonly [CloseEventTypeId]: typeof CloseEventTypeId;
readonly code: number;
readonly reason?: string;
toString(): string;
}

InputTransformStream interface

Added in v1.0.0 Source

Signature

interface InputTransformStream {
readonly readable: ReadableStream<Uint8Array<ArrayBufferLike>> | ReadableStream<string> | ReadableStream<string | Uint8Array<ArrayBufferLike>>;
readonly writable: WritableStream<Uint8Array<ArrayBufferLike>>;
}

Socket interface

Added in v1.0.0 Source

Signature

interface Socket {
readonly [TypeId]: typeof TypeId;
readonly run: <_, E = never, R = never>(handler: (_: Uint8Array) => void | Effect<_, E, R>, options?: {
readonly onOpen?: Effect<void, never, never>;
}) => Effect<void, SocketError | E, R>;
readonly runRaw: <_, E = never, R = never>(handler: (_: string | Uint8Array<ArrayBufferLike>) => void | Effect<_, E, R>, options?: {
readonly onOpen?: Effect<void, never, never>;
}) => Effect<void, SocketError | E, R>;
readonly writer: Effect<(chunk: string | Uint8Array<ArrayBufferLike> | CloseEvent) => Effect<void, SocketError>, never, Scope>;
}

Other

Signature

declare function defaultCloseCodeIsError(code: number): boolean

Refinements

isCloseEvent

Added in v1.0.0 Source

Signature

declare function isCloseEvent(u: unknown): u is CloseEvent

Signature

declare function isSocketError(u: unknown): u is SocketError

Tags

Socket

Added in v1.0.0 Source

Signature

declare const Socket: Context.Tag<Socket, Socket>

WebSocket

Added in v1.0.0 Source

Signature

declare const WebSocket: Tag<WebSocket, WebSocket>

WebSocket interface

Added in v1.0.0 Source

Signature

interface WebSocket {
readonly _: typeof _;
}

Signature

declare const WebSocketConstructor: Tag<WebSocketConstructor, (url: string, protocols?: string | Array<string>) => WebSocket>

WebSocketConstructor interface

Added in v1.0.0 Source

Signature

interface WebSocketConstructor {
readonly _: typeof _;
}

Type Ids

Signature

declare const CloseEventTypeId: unique symbol

CloseEventTypeId type

Added in v1.0.0 Source

Signature

type CloseEventTypeId = typeof CloseEventTypeId

Signature

declare const SocketErrorTypeId: unique symbol

SocketErrorTypeId type

Added in v1.0.0 Source

Signature

type SocketErrorTypeId = typeof SocketErrorTypeId

TypeId

Added in v1.0.0 Source

Signature

declare const TypeId: unique symbol

TypeId type

Added in v1.0.0 Source

Signature

type TypeId = typeof TypeId