mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-26 03:31:24 +08:00
refactor(ocr): replace manual type check with zod schema for provider ids
Use zod schema validation for BuiltinOcrProviderId type to improve type safety and maintainability
This commit is contained in:
parent
399f8cbd41
commit
5c049911ee
@ -1,4 +1,5 @@
|
||||
import type Tesseract from 'tesseract.js'
|
||||
import * as z from 'zod'
|
||||
|
||||
import type { FileMetadata, ImageFileMetadata, TranslateLanguageCode } from '.'
|
||||
import { isImageFileMetadata } from '.'
|
||||
@ -10,10 +11,12 @@ export const BuiltinOcrProviderIds = {
|
||||
ovocr: 'ovocr'
|
||||
} as const
|
||||
|
||||
export type BuiltinOcrProviderId = keyof typeof BuiltinOcrProviderIds
|
||||
export const BuiltinOcrProviderIdSchema = z.enum(['tesseract', 'system', 'paddleocr', 'ovocr'])
|
||||
|
||||
export type BuiltinOcrProviderId = z.infer<typeof BuiltinOcrProviderIdSchema>
|
||||
|
||||
export const isBuiltinOcrProviderId = (id: string): id is BuiltinOcrProviderId => {
|
||||
return Object.hasOwn(BuiltinOcrProviderIds, id)
|
||||
return BuiltinOcrProviderIdSchema.safeParse(id).success
|
||||
}
|
||||
|
||||
// extensible
|
||||
|
||||
Loading…
Reference in New Issue
Block a user