UNPKG

@devgrid/netron

Version:

A powerful TypeScript library for building distributed systems with event bus, streaming capabilities, and remote object invocation. Features WebSocket-based bidirectional communication between Node.js and browser environments, service discovery, and type

36 lines (35 loc) 1.35 kB
import { Logger } from 'pino'; import { AsyncEventEmitter } from '@devgrid/async-emitter'; import { NetronOptions } from './types'; import { LocalPeer } from './local-peer'; import { RemotePeer } from './remote-peer'; import { ServiceStub } from './service-stub'; import { Task, TaskManager } from './task-manager'; import { ServiceInfo, ServiceDiscovery } from './service-discovery'; export declare class Netron extends AsyncEventEmitter { id: string; private wss?; private ownEvents; peer: LocalPeer; peers: Map<string, RemotePeer>; taskManager: TaskManager; private isStarted; services: Map<string, ServiceStub>; options: NetronOptions; discovery?: ServiceDiscovery; private discoveryRedis?; logger: Logger; constructor(options?: NetronOptions); start(): Promise<void>; private initServiceDiscovery; stop(): Promise<void>; connect(address: string, reconnect?: boolean): Promise<RemotePeer>; disconnect(peerId: string): void; getServiceNames(): string[]; addTask(fn: Task): void; runTask(peer: RemotePeer, name: string, ...args: any[]): Promise<any>; deleteSpecialEvents(id: string): void; emitSpecial(event: string, id: string, data: any): Promise<void>; static create(options?: NetronOptions): Promise<Netron>; getExposedServices(): ServiceInfo[]; }