@comapeo/ipc
Version:
IPC wrappers for CoMapeo Core
38 lines (37 loc) • 1.83 kB
TypeScript
/**
* @param {import('./lib/sub-channel.js').MessagePortLike} messagePort
* @param {Parameters<typeof createClient>[1]} [opts]
*
* @returns {MapeoClientApi}
*/
export function createMapeoClient(messagePort: import("./lib/sub-channel.js").MessagePortLike, opts?: Parameters<typeof createClient>[1]): MapeoClientApi;
/**
* @param {MapeoClientApi} client client created with `createMapeoClient`
* @returns {Promise<void>}
*/
export function closeMapeoClient(client: MapeoClientApi): Promise<void>;
/**
* @typedef {import('rpc-reflector/client.js').ClientApi<import('./server.js').RpcApi>} AppRpcApi
*/
/**
* Create an rpc client for application RPC messages that are not part of core,
* e.g. the different servers for maps, and in the future for serving blobs and
* icons (once extracted from core)
*
* @param {import('./lib/sub-channel.js').MessagePortLike} messagePort
* @param {Parameters<typeof createClient>[1]} [opts]
* @return {AppRpcApi}
*/
export function createAppRpcClient(messagePort: import("./lib/sub-channel.js").MessagePortLike, opts?: Parameters<typeof createClient>[1]): AppRpcApi;
/**
* Close the app RPC client (removes listeners but does not close the message port)
*
* @param {AppRpcApi} appRpcClient client created with `createAppRpcClient`
*/
export function closeAppRpcClient(appRpcClient: AppRpcApi): void;
export type AppRpcApi = import("rpc-reflector/client.js").ClientApi<import("./server.js").RpcApi>;
export type MapeoProjectApi = import("rpc-reflector/client.js").ClientApi<import("@comapeo/core").MapeoProject>;
export type MapeoClientApi = import("rpc-reflector/client.js").ClientApi<Omit<import("@comapeo/core").MapeoManager, "getProject"> & {
getProject: (projectPublicId: string) => Promise<MapeoProjectApi>;
}>;
import { createClient } from 'rpc-reflector/client.js';