UNPKG

@holochain/client

Version:

A JavaScript client for the Holochain Conductor API

104 lines (103 loc) 2.96 kB
/// <reference types="ws" /> import { RoleName } from "../types.js"; import { IsoWebSocket } from "./client.js"; export declare const DEFAULT_TIMEOUT = 60000; /** * @public */ export type Transformer<ReqI, ReqO, ResI, ResO> = { input: (req: ReqI) => ReqO; output: (res: ResI) => ResO; }; /** * @public */ export type Requester<Req, Res> = (req: Req, timeout?: number) => Promise<Res>; /** * @public */ export type RequesterNoArg<Res> = (timeout?: number) => Promise<Res>; /** * @public */ export type Tagged<T> = { type: string; data: T; }; /** * Take a Requester function which deals with tagged requests and responses, * and return a Requester which deals only with the inner data types, also * with the optional Transformer applied to further modify the input and output. * * @public */ export declare const requesterTransformer: <ReqI, ReqO, ResI, ResO>(requester: Requester<Tagged<ReqO>, Tagged<ResI>>, tag: string, transform?: Transformer<ReqI, ReqO, ResI, ResO>) => (req: ReqI, timeout?: number) => Promise<ResO>; /** * Error thrown when response from Holochain is an error. * * @public */ export declare class HolochainError extends Error { constructor(name: string, message: string); } export declare const catchError: (response: any) => Promise<any>; export declare const promiseTimeout: (promise: Promise<unknown>, tag: string, ms: number) => Promise<unknown>; /** * Check if a cell's role name is a valid clone id. * * @param roleName - The role name to check. * * @public */ export declare const isCloneId: (roleName: RoleName) => boolean; /** * Parse a clone id and get the role name part of it. * * @param roleName - The role name to parse. * @public */ export declare const getBaseRoleNameFromCloneId: (roleName: RoleName) => string; /** * Identifier of a clone cell, composed of the DNA's role id and the index * of the clone, starting at 0. * * Example: `profiles.0` * * @public */ export declare class CloneId { private readonly roleName; private readonly index; constructor(roleName: RoleName, index: number); /** * Parse a role id of a clone cell to obtain a clone id instance. * @param roleName - Role id to parse. * @returns A clone id instance. */ static fromRoleName(roleName: RoleName): CloneId; toString(): string; getBaseRoleName(): string; } /** * @public */ export type WsClientOptions = Pick<IsoWebSocket.ClientOptions, "origin">; /** * Options for a Websocket connection. * * @public */ export interface WebsocketConnectionOptions { /** * The `ws://` URL of the Websocket server to connect to. Not required when connecting to App API from a Launcher or Kangaroo environment. */ url?: URL; /** * Options to pass to the underlying websocket connection. */ wsClientOptions?: WsClientOptions; /** * Timeout to default to for all operations. */ defaultTimeout?: number; }