@convex-dev/workflow
Version:
Convex component for durably executing workflows.
43 lines • 1.64 kB
TypeScript
import { BaseChannel } from "async-channel";
import { GenericMutationCtx, GenericDataModel, FunctionType, FunctionReference } from "convex/server";
import { JournalEntry } from "../component/schema.js";
import { api } from "../component/_generated/api.js";
import { UseApi } from "../types.js";
import { RetryBehavior, WorkpoolOptions, RunResult, SchedulerOptions } from "@convex-dev/workpool";
export type OriginalEnv = {
Date: {
now: () => number;
};
};
export type WorkerResult = {
type: "handlerDone";
runResult: RunResult;
} | {
type: "executorBlocked";
};
export type StepRequest = {
name: string;
functionType: FunctionType;
function: FunctionReference<any>;
args: any;
retry: RetryBehavior | boolean | undefined;
schedulerOptions: SchedulerOptions;
resolve: (result: unknown) => void;
reject: (error: unknown) => void;
};
export declare class StepExecutor {
private workflowId;
private generationNumber;
private ctx;
private component;
private journalEntries;
private receiver;
private originalEnv;
private workpoolOptions;
private journalEntrySize;
constructor(workflowId: string, generationNumber: number, ctx: GenericMutationCtx<GenericDataModel>, component: UseApi<typeof api>, journalEntries: Array<JournalEntry>, receiver: BaseChannel<StepRequest>, originalEnv: OriginalEnv, workpoolOptions: WorkpoolOptions | undefined);
run(): Promise<WorkerResult>;
completeMessage(message: StepRequest, entry: JournalEntry): void;
startStep(message: StepRequest): Promise<JournalEntry>;
}
//# sourceMappingURL=step.d.ts.map