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;