@comapeo/ipc
Version:
IPC wrappers for CoMapeo Core
50 lines (49 loc) • 1.81 kB
TypeScript
/**
* @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';