All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 27s
29 lines
704 B
TypeScript
29 lines
704 B
TypeScript
import { LlmProvider, normalizeLlmProvider } from './llmProvider';
|
|
|
|
export interface SubtitleRequestBody {
|
|
provider?: string | null;
|
|
targetLanguage?: string | null;
|
|
fileId?: string | null;
|
|
}
|
|
|
|
export interface ParsedSubtitleRequest {
|
|
provider: LlmProvider;
|
|
targetLanguage: string;
|
|
fileId?: string;
|
|
}
|
|
|
|
export const parseSubtitleRequest = (
|
|
body: SubtitleRequestBody,
|
|
): ParsedSubtitleRequest => {
|
|
const targetLanguage = body.targetLanguage?.trim();
|
|
if (!targetLanguage) {
|
|
throw new Error('Target language is required.');
|
|
}
|
|
|
|
return {
|
|
provider: normalizeLlmProvider(body.provider),
|
|
targetLanguage,
|
|
...(body.fileId?.trim() ? { fileId: body.fileId.trim() } : {}),
|
|
};
|
|
};
|