Skip to content

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;