@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
TypeScript
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[];
}