@hotmeshio/hotmesh
Version:
Serverless Workflow
28 lines (27 loc) • 1.31 kB
TypeScript
import { EngineService } from '../engine';
import { TelemetryService } from '../telemetry';
import { ActivityData, ActivityMetadata, ActivityType, HookActivity } from '../../types/activity';
import { HookRule } from '../../types/hook';
import { JobState, JobStatus } from '../../types/job';
import { ProviderTransaction } from '../../types/provider';
import { StreamCode, StreamStatus } from '../../types/stream';
import { Activity } from './activity';
/**
* Supports `signal hook`, `time hook`, and `cycle hook` patterns
*/
declare class Hook extends Activity {
config: HookActivity;
constructor(config: ActivityType, data: ActivityData, metadata: ActivityMetadata, hook: ActivityData | null, engine: EngineService, context?: JobState);
process(): Promise<string>;
/**
* does this activity use a time-hook or web-hook
*/
doesHook(): boolean;
doHook(telemetry: TelemetryService): Promise<void>;
doPassThrough(telemetry: TelemetryService): Promise<void>;
getHookRule(topic: string): Promise<HookRule | undefined>;
registerHook(transaction?: ProviderTransaction): Promise<string | void>;
processWebHookEvent(status?: StreamStatus, code?: StreamCode): Promise<JobStatus | void>;
processTimeHookEvent(jobId: string): Promise<JobStatus | void>;
}
export { Hook };