UNPKG

@awesome-ecs/workers

Version:

The Workers package for Awesome ECS. Provides basic implementation for the Worker communication using ECS.

41 lines (36 loc) 1.32 kB
import { T as ThreadWorkerType } from './worker-type-comvmkQN.cjs'; 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 };