diff --git a/src/renderer/src/types/ocr.ts b/src/renderer/src/types/ocr.ts index cf56ac1cb8..ecca47fc46 100644 --- a/src/renderer/src/types/ocr.ts +++ b/src/renderer/src/types/ocr.ts @@ -54,22 +54,16 @@ export type OcrModel = z.infer /** * Extend this type to define provider-specefic config types. */ -export type OcrProviderApiConfig = { - apiKey: string - apiHost: string - apiVersion?: string -} +export const OcrProviderApiConfigSchema = z.object({ + apiKey: z.string(), + apiHost: z.string(), + apiVersion: z.string().optional() +}) + +export type OcrProviderApiConfig = z.infer export const isOcrProviderApiConfig = (config: unknown): config is OcrProviderApiConfig => { - return ( - typeof config === 'object' && - config !== null && - 'apiKey' in config && - typeof config.apiKey === 'string' && - 'apiHost' in config && - typeof config.apiHost === 'string' && - (!('apiVersion' in config) || typeof config.apiVersion === 'string') - ) + return OcrProviderApiConfigSchema.safeParse(config).success } /**