@comapeo/ipc
Version:
IPC wrappers for CoMapeo Core
45 lines (44 loc) • 1.55 kB
TypeScript
export const COMAPEO_PREFIX: "@@comapeo/";
export const MANAGER_CHANNEL_ID: "@@comapeo/manager";
export const PROJECT_ROUTING_ID: "@@comapeo/project-routing";
export const SERVICES_ID: "@@comapeo/services";
export const PROJECT_INSTANCE_PREFIX: "@@comapeo/project/";
/** @import {MessagePortLike, MessageEvent} from 'rpc-reflector' */
/**
* @typedef {Object} Events
* @property {(message: unknown) => void} message
*/
/** @implements {MessagePortLike} */
export class SubChannel implements MessagePortLike {
/**
* @param {MessagePortLike} messagePort Parent channel to add namespace to
* @param {string} id ID for the subchannel
*/
constructor(messagePort: MessagePortLike, id: string);
/**
* @param {'message'} type
* @param {(event: MessageEvent) => void} listener
*/
addEventListener(type: "message", listener: (event: MessageEvent) => void): void;
/**
* @param {'message'} type
* @param {(event: MessageEvent) => void} listener
*/
removeEventListener(type: "message", listener: (event: MessageEvent) => void): void;
get id(): string;
/**
* Send messages with the subchannel's ID
* @param {any} message
*/
postMessage(message: any): void;
start(): void;
close(): void;
/** @param {MessageEvent} event */
dispatchEvent(event: MessageEvent): void;
#private;
}
export type Events = {
message: (message: unknown) => void;
};
import type { MessageEvent } from 'rpc-reflector';
import type { MessagePortLike } from 'rpc-reflector';