diff --git a/src/main/services/ocr/OcrService.ts b/src/main/services/ocr/OcrService.ts index d709115b9c..73907574b2 100644 --- a/src/main/services/ocr/OcrService.ts +++ b/src/main/services/ocr/OcrService.ts @@ -1,13 +1,19 @@ -import { BuiltinOcrProviderIds, FileMetadata, OcrProvider, OcrResult, SupportedOcrFile } from '@types' +import { loggerService } from '@logger' +import { BuiltinOcrProviderIds, OcrProvider, OcrResult, SupportedOcrFile } from '@types' import { tesseractService } from './tesseract/TesseractService' -type OcrHandler = (file: FileMetadata) => Promise +type OcrHandler = (file: SupportedOcrFile) => Promise + +const logger = loggerService.withContext('OcrService') export class OcrService { private registry: Map = new Map() register(providerId: string, handler: OcrHandler): void { + if (this.registry.has(providerId)) { + logger.warn(`Provider ${providerId} has existing handler. Overwrited.`) + } this.registry.set(providerId, handler) } diff --git a/src/main/services/ocr/tesseract/TesseractService.ts b/src/main/services/ocr/tesseract/TesseractService.ts index 06f460dfea..77225d4afe 100644 --- a/src/main/services/ocr/tesseract/TesseractService.ts +++ b/src/main/services/ocr/tesseract/TesseractService.ts @@ -1,7 +1,7 @@ import { loggerService } from '@logger' import { getIpCountry } from '@main/utils/ipService' import { MB } from '@shared/config/constant' -import { FileMetadata, ImageFileMetadata, isImageFile, OcrResult } from '@types' +import { ImageFileMetadata, isImageFile, OcrResult, SupportedOcrFile } from '@types' import { app } from 'electron' import fs from 'fs' import path from 'path' @@ -149,7 +149,7 @@ export class TesseractService { return { text: result.data.text } } - async ocr(file: FileMetadata): Promise { + async ocr(file: SupportedOcrFile): Promise { if (!isImageFile(file)) { throw new Error('Only image files are supported currently') }