RpcService.d.ts 703 B

123456789101112
  1. import { RpcProcedure } from './RpcProcedure';
  2. import { RpcMessagePort } from './RpcMessagePort';
  3. declare type RpcCallHandler<TPayload = any, TResult = any> = (payload: TPayload) => Promise<TResult>;
  4. interface RpcService {
  5. readonly isOpen: () => boolean;
  6. readonly open: () => Promise<void>;
  7. readonly close: () => Promise<void>;
  8. readonly addCallHandler: <TPayload, TResult>(procedure: RpcProcedure<TPayload, TResult>, handler: RpcCallHandler<TPayload, TResult>) => void;
  9. readonly removeCallHandler: <TPayload, TResult>(procedure: RpcProcedure<TPayload, TResult>) => void;
  10. }
  11. declare function createRpcService(port: RpcMessagePort): RpcService;
  12. export { RpcService, createRpcService };