@convex-dev/workflow
Version:
Convex component for durably executing workflows.
39 lines • 1.44 kB
JavaScript
import { vResultValidator, vWorkIdValidator, } from "@convex-dev/workpool";
import { v, } from "convex/values";
export const vWorkflowId = v.string();
export const vEventId = (_name) => v.string();
export const vPublicWorkflow = v.object({
workflowId: vWorkflowId,
name: v.optional(v.string()),
args: v.any(),
context: v.optional(v.any()),
runResult: v.optional(vResultValidator),
});
// type assertion to keep us in check
const _publicWorkflow = {};
export const vWorkflowStep = v.object({
workflowId: vWorkflowId,
name: v.string(),
stepId: v.string(),
stepNumber: v.number(),
args: v.any(),
runResult: v.optional(vResultValidator),
startedAt: v.number(),
completedAt: v.optional(v.number()),
kind: v.union(v.literal("function"), v.literal("workflow"), v.literal("event"), v.literal("sleep")),
workId: v.optional(vWorkIdValidator),
nestedWorkflowId: v.optional(vWorkflowId),
eventId: v.optional(vEventId()),
});
// type assertion to keep us in check
const _workflowStep = {};
export function vPaginationResult(itemValidator) {
return v.object({
page: v.array(itemValidator),
continueCursor: v.string(),
isDone: v.boolean(),
splitCursor: v.optional(v.union(v.string(), v.null())),
pageStatus: v.optional(v.union(v.literal("SplitRecommended"), v.literal("SplitRequired"), v.null())),
});
}
//# sourceMappingURL=types.js.map