import { MRunnerJob } from '@server/types/models/runners' import { RunnerJobSuccessPayload, RunnerJobType, RunnerJobUpdatePayload } from '@shared/models' import { AbstractJobHandler } from './abstract-job-handler' import { LiveRTMPHLSTranscodingJobHandler } from './live-rtmp-hls-transcoding-job-handler' import { VideoEditionTranscodingJobHandler } from './video-edition-transcoding-job-handler' import { VODAudioMergeTranscodingJobHandler } from './vod-audio-merge-transcoding-job-handler' import { VODHLSTranscodingJobHandler } from './vod-hls-transcoding-job-handler' import { VODWebVideoTranscodingJobHandler } from './vod-web-video-transcoding-job-handler' const processors: Record AbstractJobHandler> = { 'vod-web-video-transcoding': VODWebVideoTranscodingJobHandler, 'vod-hls-transcoding': VODHLSTranscodingJobHandler, 'vod-audio-merge-transcoding': VODAudioMergeTranscodingJobHandler, 'live-rtmp-hls-transcoding': LiveRTMPHLSTranscodingJobHandler, 'video-edition-transcoding': VideoEditionTranscodingJobHandler } export function getRunnerJobHandlerClass (job: MRunnerJob) { return processors[job.type] }