Files
homarr/packages/request-handler/src/media-transcoding.ts
T

32 lines
1.0 KiB
TypeScript

import type { IntegrationKindByCategory } from "@homarr/definitions";
import { createIntegrationAsync } from "@homarr/integrations";
import type { TdarrQueue, TdarrStatistics, TdarrWorker } from "@homarr/integrations";
import { createIntegrationRequestHandler } from "./lib/integration-request-handler";
export const mediaTranscodingRequestHandler = createIntegrationRequestHandler<
MediaTranscoding,
IntegrationKindByCategory<"mediaTranscoding">,
{ pageOffset: number; pageSize: number }
>({
async requestAsync(integration, input) {
const integrationInstance = await createIntegrationAsync(integration);
const [queue, workers, statistics] = await Promise.all([
integrationInstance.getQueueAsync(input.pageOffset, input.pageSize),
integrationInstance.getWorkersAsync(),
integrationInstance.getStatisticsAsync(),
]);
return {
queue,
workers,
statistics,
};
},
});
export interface MediaTranscoding {
queue: TdarrQueue;
workers: TdarrWorker[];
statistics: TdarrStatistics;
}