UNPKG

@comapeo/ipc

Version:
50 lines (49 loc) 1.81 kB
/** * @param {import('@comapeo/core').MapeoManager} manager * @param {import('./lib/sub-channel.js').MessagePortLike} messagePort * @param {Parameters<typeof createServer>[2]} [opts] */ export function createMapeoServer(manager: import("@comapeo/core").MapeoManager, messagePort: import("./lib/sub-channel.js").MessagePortLike, opts?: Parameters<typeof createServer>[2]): { close(): void; }; /** * @typedef {object} RpcApi * @property {object} mapServer * @property {(options?: { localPort?: number, remotePort?: number }) => Promise<{ localPort: number, remotePort: number }>} mapServer.listen * @property {() => Promise<void>} mapServer.close */ /** * 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 {RpcApi} rpc * @param {import('./lib/sub-channel.js').MessagePortLike} messagePort * @param {Parameters<typeof createServer>[2]} [opts] */ export function createAppRpcServer(rpc: RpcApi, messagePort: import("./lib/sub-channel.js").MessagePortLike, opts?: Parameters<typeof createServer>[2]): { close(): void; }; export class MapeoRpcApi { /** * @param {import('@comapeo/core').MapeoManager} manager */ constructor(manager: import("@comapeo/core").MapeoManager); /** * @param {string} projectId * @returns {Promise<boolean>} */ assertProjectExists(projectId: string): Promise<boolean>; #private; } export type RpcApi = { mapServer: { listen: (options?: { localPort?: number; remotePort?: number; }) => Promise<{ localPort: number; remotePort: number; }>; close: () => Promise<void>; }; }; import { createServer } from 'rpc-reflector/server.js';