UNPKG

@panyam/tsutils

Version:

Some basic TS utils for personal use

43 lines (42 loc) 1.27 kB
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 {};