@darlean/core
Version:
Darlean core functionality for creating applications that define, expose and host actors
36 lines (35 loc) • 1.92 kB
TypeScript
/// <reference types="node" />
import { ITransportFailure, ITransport, MessageHandler, ITransportSession } from './transport';
import { Msg, Subscription } from 'nats';
import { IDeSer } from '@darlean/utils';
import { ITracingTags, IRemoteCallTags, ITransportTags } from './wiretypes';
import { IActorCallRequest, IActorCallResponse } from '@darlean/base';
export declare const NATS_ERROR_NOT_CONNECTED = "NOT_CONNECTED";
export declare const NATS_ERROR_SEND_FAILED = "SEND_FAILED";
export declare const NATS_ERROR_SEND_NO_ACK = "NO_ACK";
export declare class NatsTransport implements ITransport {
private deser;
private seedUrls?;
private ackTimeout;
constructor(deser: IDeSer, seedUrls?: string[], ackTimeout?: number);
connect(appId: string, onMessage: MessageHandler): Promise<ITransportSession>;
}
export declare class NatsTransportSession implements ITransportSession {
private deser;
private connection?;
private subscription?;
private appId?;
private messageHandler?;
private seedUrls?;
private ackTimeout;
private sendQueue;
constructor(deser: IDeSer, seedUrls: string[] | undefined, ackTimeout: number);
connect(appId: string, onMessage: MessageHandler): Promise<void>;
send(tags: ITransportTags & IRemoteCallTags & ITracingTags, contents: IActorCallRequest | IActorCallResponse | ITransportFailure | undefined, failure?: ITransportFailure): void;
finalize(): Promise<void>;
protected sendImpl(receiver: string, msg: Buffer, onError: (error: unknown) => void): void;
protected doSendBatch(receiver: string): void;
protected handleMessage(_err: unknown, m: Msg, onMessage: MessageHandler): void;
protected listen(sub: Subscription, onMessage: MessageHandler): Promise<void>;
protected sendFailureMessage(originalTags: ITransportTags & IRemoteCallTags, code: string, msg: string): void;
}