UNPKG

@sidequest/core

Version:

@sidequest/core is the core package of SideQuest, a distributed background job queue for Node.js and TypeScript applications.

39 lines (36 loc) 1.4 kB
import { CompleteTransition } from './complete-transition.js'; import { FailTransition } from './fail-transition.js'; import { RetryTransition } from './retry-transition.js'; import { SnoozeTransition } from './snooze-transition.js'; /** * Factory for creating job transitions from job results. */ class JobTransitionFactory { /** * Creates a job transition instance from a job result. * @param jobResult The job result object. * @returns The corresponding job transition instance. */ static create(jobResult) { switch (jobResult.type) { case "retry": return new RetryTransition(jobResult.error, jobResult.delay); case "snooze": return new SnoozeTransition(jobResult.delay); case "failed": return new FailTransition(jobResult.error); case "completed": return new CompleteTransition(jobResult.result); } } } /** * Checks if a value is a JobResult object. If this returns false, it is probably a raw job result. * @param value The value to check. * @returns True if the value is a JobResult. */ function isJobResult(value) { return !!value && typeof value === "object" && "__is_job_transition__" in value && !!value.__is_job_transition__; } export { JobTransitionFactory, isJobResult }; //# sourceMappingURL=job-result.js.map