UNPKG

@hotmeshio/hotmesh

Version:

Serverless Workflow

265 lines (264 loc) 8.14 kB
import { Await } from '../activities/await'; import { Cycle } from '../activities/cycle'; import { Hook } from '../activities/hook'; import { Interrupt } from '../activities/interrupt'; import { Signal } from '../activities/signal'; import { Worker } from '../activities/worker'; import { Trigger } from '../activities/trigger'; import { ExporterService } from '../exporter'; import { ILogger } from '../logger'; import { Router } from '../router'; import { SearchService } from '../search'; import { StoreService } from '../store'; import { StreamService } from '../stream'; import { SubService } from '../sub'; import { TaskService } from '../task'; import { AppVID } from '../../types/app'; import { ActivityType } from '../../types/activity'; import { CacheMode } from '../../types/cache'; import { JobExport } from '../../types/exporter'; import { JobState, JobData, JobMetadata, JobOutput, JobStatus, JobInterruptOptions, JobCompletionOptions, ExtensionType } from '../../types/job'; import { HotMeshApps, HotMeshConfig, HotMeshManifest, HotMeshSettings } from '../../types/hotmesh'; import { ProviderClient, ProviderTransaction } from '../../types/provider'; import { JobMessageCallback } from '../../types/quorum'; import { StringAnyType, StringStringType } from '../../types/serializer'; import { GetStatsOptions, IdsResponse, JobStatsInput, StatsResponse } from '../../types/stats'; import { StreamCode, StreamData, StreamDataResponse, StreamError, StreamStatus } from '../../types/stream'; import { WorkListTaskType } from '../../types/task'; declare class EngineService { namespace: string; apps: HotMeshApps | null; appId: string; guid: string; exporter: ExporterService | null; search: SearchService<ProviderClient> | null; store: StoreService<ProviderClient, ProviderTransaction> | null; stream: StreamService<ProviderClient, ProviderTransaction> | null; subscribe: SubService<ProviderClient> | null; router: Router<typeof this.stream> | null; taskService: TaskService | null; logger: ILogger; cacheMode: CacheMode; untilVersion: string | null; jobCallbacks: Record<string, JobMessageCallback>; reporting: boolean; jobId: number; inited: string; /** * @private */ constructor(); /** * @private */ static init(namespace: string, appId: string, guid: string, config: HotMeshConfig, logger: ILogger): Promise<EngineService>; /** * @private */ verifyEngineFields(config: HotMeshConfig): void; /** * @private */ initSearchChannel(search: ProviderClient, store?: ProviderClient): Promise<void>; /** * @private */ initStoreChannel(store: ProviderClient): Promise<void>; /** * @private */ initSubChannel(sub: ProviderClient, store: ProviderClient): Promise<void>; /** * @private */ initStreamChannel(stream: ProviderClient, store: ProviderClient): Promise<void>; /** * @private */ initRouter(config: HotMeshConfig): Promise<Router<StreamService<ProviderClient, ProviderTransaction>>>; /** * resolves the distributed executable version using a delay * to allow deployment race conditions to resolve * @private */ fetchAndVerifyVID(vid: AppVID, count?: number): Promise<AppVID>; getVID(vid?: AppVID): Promise<AppVID>; /** * @private */ setCacheMode(cacheMode: CacheMode, untilVersion: string): void; /** * @private */ routeToSubscribers(topic: string, message: JobOutput): Promise<void>; /** * @private */ processWebHooks(): Promise<void>; /** * @private */ processTimeHooks(): Promise<void>; /** * @private */ throttle(delayInMillis: number): Promise<void>; /** * @private */ initActivity(topic: string, data?: JobData, context?: JobState): Promise<Await | Cycle | Hook | Signal | Trigger | Worker | Interrupt>; getSchema(topic: string): Promise<[activityId: string, schema: ActivityType]>; /** * @private */ getSettings(): Promise<HotMeshSettings>; /** * @private */ isPrivate(topic: string): boolean; /** * @private */ plan(pathOrYAML: string): Promise<HotMeshManifest>; /** * @private */ deploy(pathOrYAML: string): Promise<HotMeshManifest>; /** * @private */ getStats(topic: string, query: JobStatsInput): Promise<StatsResponse>; /** * @private */ getIds(topic: string, query: JobStatsInput, queryFacets?: any[]): Promise<IdsResponse>; /** * @private */ resolveQuery(topic: string, query: JobStatsInput): Promise<GetStatsOptions>; /** * @private */ processStreamMessage(streamData: StreamDataResponse): Promise<void>; /** * @private */ execAdjacentParent(context: JobState, jobOutput: JobOutput, emit?: boolean): Promise<string>; /** * @private */ hasParentJob(context: JobState, checkSevered?: boolean): boolean; /** * @private */ resolveError(metadata: JobMetadata): StreamError | undefined; /** * @private */ interrupt(topic: string, jobId: string, options?: JobInterruptOptions): Promise<string>; /** * @private */ scrub(jobId: string): Promise<void>; /** * @private */ hook(topic: string, data: JobData, status?: StreamStatus, code?: StreamCode): Promise<string>; /** * @private */ hookTime(jobId: string, gId: string, topicOrActivity: string, type?: WorkListTaskType): Promise<string | void>; /** * @private */ hookAll(hookTopic: string, data: JobData, keyResolver: JobStatsInput, queryFacets?: string[]): Promise<string[]>; /** * @private */ pub(topic: string, data: JobData, context?: JobState, extended?: ExtensionType): Promise<string>; /** * @private */ sub(topic: string, callback: JobMessageCallback): Promise<void>; /** * @private */ unsub(topic: string): Promise<void>; /** * @private */ psub(wild: string, callback: JobMessageCallback): Promise<void>; /** * @private */ punsub(wild: string): Promise<void>; /** * @private */ pubsub(topic: string, data: JobData, context?: JobState | null, timeout?: number): Promise<JobOutput>; /** * @private */ pubOneTimeSubs(context: JobState, jobOutput: JobOutput, emit?: boolean): Promise<void>; /** * @private */ getPublishesTopic(context: JobState): Promise<string>; /** * @private */ pubPermSubs(context: JobState, jobOutput: JobOutput, emit?: boolean): Promise<void>; /** * @private */ add(streamData: StreamData | StreamDataResponse): Promise<string>; /** * @private */ registerJobCallback(jobId: string, jobCallback: JobMessageCallback): void; /** * @private */ delistJobCallback(jobId: string): void; /** * @private */ hasOneTimeSubscription(context: JobState): boolean; /** * @private */ runJobCompletionTasks(context: JobState, options?: JobCompletionOptions): Promise<string | void>; /** * Job hash expiration is typically reliant on the metadata field * if the activity concludes normally. However, if the job is `interrupted`, * it will be expired immediately. * @private */ resolveExpires(context: JobState, options: JobCompletionOptions): number; /** * @private */ export(jobId: string): Promise<JobExport>; /** * @private */ getRaw(jobId: string): Promise<StringStringType>; /** * @private */ getStatus(jobId: string): Promise<JobStatus>; /** * @private */ getState(topic: string, jobId: string): Promise<JobOutput>; /** * @private */ getQueryState(jobId: string, fields: string[]): Promise<StringAnyType>; /** * @private * @deprecated */ compress(terms: string[]): Promise<boolean>; } export { EngineService };