@awesome-ecs/workers
Version:
The Workers package for Awesome ECS. Provides basic implementation for the Worker communication using ECS.
41 lines (36 loc) • 1.31 kB
TypeScript
import { T as ThreadWorkerType } from './worker-type-comvmkQN.js';
type WorkerUid = string;
type WorkerMessageUid = string;
interface WorkerInstanceResponse<TResponseData> {
data: TResponseData;
transfer?: ArrayBuffer[];
}
interface WorkerInstance<TRequestData, TResponseData> {
handle(message: TRequestData): WorkerInstanceResponse<TResponseData>;
}
declare enum WorkerMessageType {
health = "health",
data = "data"
}
interface WorkerRequestMessage<TRequestData> {
workerType: ThreadWorkerType;
messageType: WorkerMessageType;
messageUid: WorkerMessageUid;
request: TRequestData;
}
interface WorkerResponseMessage<TResponseData> {
workerType: ThreadWorkerType;
workerUid?: WorkerUid;
messageType: WorkerMessageType;
messageUid: WorkerMessageUid;
data: TResponseData;
transfer?: ArrayBuffer[];
}
interface IWorkerMessageQueue {
readonly size: number;
enqueue(change: WorkerRequestMessage<any>): void;
dequeue(): WorkerRequestMessage<any>;
peek(): WorkerRequestMessage<any>;
clear(): void;
}
export { type IWorkerMessageQueue as I, type WorkerRequestMessage as W, type WorkerResponseMessage as a, type WorkerUid as b, type WorkerMessageUid as c, type WorkerInstanceResponse as d, type WorkerInstance as e, WorkerMessageType as f };