UNPKG

@hotmeshio/hotmesh

Version:

Serverless Workflow

78 lines (77 loc) 2.48 kB
/// <reference types="node" /> import { ILogger } from '../logger'; import { Router } from '../router'; import { StoreService } from '../store'; import { StreamService } from '../stream'; import { SubService } from '../sub'; import { HotMeshConfig, HotMeshWorker } from '../../types/hotmesh'; import { ProviderClient, ProviderTransaction } from '../../types/provider'; import { RollCallMessage, SubscriptionCallback } from '../../types/quorum'; import { StreamData, StreamDataResponse } from '../../types/stream'; declare class WorkerService { namespace: string; appId: string; guid: string; topic: string; config: HotMeshConfig; callback: (streamData: StreamData) => Promise<StreamDataResponse | void>; store: StoreService<ProviderClient, ProviderTransaction> | null; stream: StreamService<ProviderClient, ProviderTransaction> | null; subscribe: SubService<ProviderClient> | null; router: Router<typeof this.stream> | null; logger: ILogger; reporting: boolean; inited: string; rollCallInterval: NodeJS.Timeout; /** * @private */ constructor(); /** * @private */ static init(namespace: string, appId: string, guid: string, config: HotMeshConfig, logger: ILogger): Promise<WorkerService[]>; /** * @private */ verifyWorkerFields(worker: HotMeshWorker): void; /** * @private */ initStoreChannel(service: WorkerService, store: ProviderClient): Promise<void>; /** * @private */ initSubChannel(service: WorkerService, sub: ProviderClient, store: ProviderClient): Promise<void>; /** * @private */ initStreamChannel(service: WorkerService, stream: ProviderClient, store: ProviderClient): Promise<void>; /** * @private */ initRouter(worker: HotMeshWorker, logger: ILogger): Promise<Router<StreamService<ProviderClient, ProviderTransaction>>>; /** * @private */ subscriptionHandler(): SubscriptionCallback; /** * A quorum-wide command to broadcaset system details. * */ doRollCall(message: RollCallMessage): Promise<void>; cancelRollCall(): void; /** * @private */ stop(): void; /** * @private */ sayPong(appId: string, guid: string, originator?: string, details?: boolean, signature?: boolean): Promise<void>; /** * @private */ throttle(delayInMillis: number): Promise<void>; } export { WorkerService };