Files
cherry-studio/src/main/preprocess/PreprocessProviderFactory.ts
T
2025-06-03 21:29:08 +08:00

30 lines
1.1 KiB
TypeScript

import { isMac } from '@main/constant'
import { PreprocessProvider } from '@types'
import Logger from 'electron-log'
import BasePreprocessProvider from './BasePreprocessProvider'
import DefaultPreprocessProvider from './DefaultPreprocessProvider'
import Doc2xPreprocessProvider from './Doc2xPreprocessProvider'
import MacSysOcrProvider from './MacSysOcrProvider'
import MineruPreprocessProvider from './MineruPreprocessProvider'
import MistralPreprocessProvider from './MistralPreprocessProvider'
export default class PreprocessProviderFactory {
static create(provider: PreprocessProvider): BasePreprocessProvider {
switch (provider.id) {
case 'doc2x':
return new Doc2xPreprocessProvider(provider)
case 'mistral':
return new MistralPreprocessProvider(provider)
case 'system':
if (!isMac) {
Logger.warn('[OCR] System OCR provider is only available on macOS')
}
return new MacSysOcrProvider(provider)
case 'mineru':
return new MineruPreprocessProvider(provider)
default:
return new DefaultPreprocessProvider(provider)
}
}
}