UNPKG

@awesome-ecs/workers

Version:

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

45 lines (36 loc) 1.85 kB
import { IEventData, IEntity } from '@awesome-ecs/abstract/entities'; import { a as WorkerResponseMessage, W as WorkerRequestMessage } from '../worker-queue-CIEYZIdw.js'; export { I as IWorkerMessageQueue, e as WorkerInstance, d as WorkerInstanceResponse, f as WorkerMessageType, c as WorkerMessageUid, b as WorkerUid } from '../worker-queue-CIEYZIdw.js'; import { T as ThreadWorkerType } from '../worker-type-comvmkQN.js'; export { M as MultiplexWorkerType } from '../worker-type-comvmkQN.js'; import { PerformanceTimeEntry } from '@awesome-ecs/abstract/utils'; import { ISystemContext } from '@awesome-ecs/abstract/systems'; declare enum WorkerThreadEventType { messageReceivedHealth = "message-received-health", messageReceivedData = "message-received-data" } interface WorkerThreadEventMessageResponseData<TResponseData> extends IEventData { message: WorkerResponseMessage<TResponseData>; error?: ErrorEvent; messageError?: MessageEvent; } declare enum WorkerComponentType { workerInstance = "worker-instance" } declare enum WorkerEntityType { workerThread = "worker-thread" } interface IWorkerFactory { createWorker(type: ThreadWorkerType, name: string): Worker; } interface WorkerThreadHealthRequest { heartbeatValue: string; } interface WorkerThreadHealthResponse { heartbeatValue: string; metrics: PerformanceTimeEntry[]; } interface IWorkerSystemPipelineContext<TEntity extends IEntity> extends ISystemContext<TEntity> { sendWorkerMessage(message: WorkerRequestMessage<any>): void; } export { type IWorkerFactory, type IWorkerSystemPipelineContext, ThreadWorkerType, WorkerComponentType, WorkerEntityType, WorkerRequestMessage, WorkerResponseMessage, type WorkerThreadEventMessageResponseData, WorkerThreadEventType, type WorkerThreadHealthRequest, type WorkerThreadHealthResponse };