@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
text/typescript
import { IEventData, IEntity } from '@awesome-ecs/abstract/entities';
import { a as WorkerResponseMessage, W as WorkerRequestMessage } from '../worker-queue-DomXrtWj.cjs';
export { I as IWorkerMessageQueue, e as WorkerInstance, d as WorkerInstanceResponse, f as WorkerMessageType, c as WorkerMessageUid, b as WorkerUid } from '../worker-queue-DomXrtWj.cjs';
import { T as ThreadWorkerType } from '../worker-type-comvmkQN.cjs';
export { M as MultiplexWorkerType } from '../worker-type-comvmkQN.cjs';
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 };