@panyam/tsutils
Version:
Some basic TS utils for personal use
43 lines (42 loc) • 1.27 kB
TypeScript
import { Nullable } from "../types";
export declare abstract class Actor {
processMessage(msg: Message): void;
processSend(send: Send): void;
processReply(_reply: Reply): void;
}
export declare abstract class Message {
private static counter;
readonly uuid: number;
readonly name: string;
readonly isReply: boolean;
readonly source: Actor;
readonly target: Actor;
sourceData: any;
payload: any;
label: string;
constructor(name: string, source: Actor, target: Actor);
}
declare abstract class ForwardableBase<T> extends Message {
private _rootMessage;
private _spawnedFrom;
get spawnedFrom(): Nullable<this>;
protected setSpawnedFrom(msg: Nullable<this>): void;
get rootMessage(): this;
}
export declare class Reply extends ForwardableBase<Reply> {
readonly isReply = true;
responseTo: Send;
isError: boolean;
error?: any;
constructor(responseTo: Send, error?: any);
spawn(responseTo: Send, error?: any): Reply;
}
export declare class Send extends ForwardableBase<Send> {
readonly isReply = false;
children: Send[];
reply: Nullable<Reply>;
cancelledAt: Nullable<number>;
spawn(nextTarget: Actor): Send;
spawnReply(error?: any): Reply;
}
export {};