UNPKG

@sidequest/core

Version:

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

42 lines (38 loc) 1.52 kB
'use strict'; var completeTransition = require('./complete-transition.cjs'); var failTransition = require('./fail-transition.cjs'); var retryTransition = require('./retry-transition.cjs'); var snoozeTransition = require('./snooze-transition.cjs'); /** * 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.RetryTransition(jobResult.error, jobResult.delay); case "snooze": return new snoozeTransition.SnoozeTransition(jobResult.delay); case "failed": return new failTransition.FailTransition(jobResult.error); case "completed": return new completeTransition.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__; } exports.JobTransitionFactory = JobTransitionFactory; exports.isJobResult = isJobResult; //# sourceMappingURL=job-result.cjs.map