From 694f24f7ff9767b81e7e2b0f68febe2441177119 Mon Sep 17 00:00:00 2001 From: Vijay A Date: Sat, 30 Apr 2022 21:02:01 -0500 Subject: Replace dependency on 'cld' with 'languagedetect' to remove native compilation issu --- src/electron/ipc-api/cld.ts | 28 ---------------------------- src/electron/ipc-api/index.ts | 4 ++-- src/electron/ipc-api/languageDetect.ts | 19 +++++++++++++++++++ 3 files changed, 21 insertions(+), 30 deletions(-) delete mode 100644 src/electron/ipc-api/cld.ts create mode 100644 src/electron/ipc-api/languageDetect.ts (limited to 'src/electron/ipc-api') diff --git a/src/electron/ipc-api/cld.ts b/src/electron/ipc-api/cld.ts deleted file mode 100644 index a6332e22d..000000000 --- a/src/electron/ipc-api/cld.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { ipcMain } from 'electron'; -// @ts-ignore -import cld from 'cld'; - -const debug = require('../../preload-safe-debug')('Ferdium:ipcApi:cld'); - -export default async () => { - ipcMain.handle('detect-language', async (_event, { sample }) => { - if (!cld) { - return null; - } - try { - const result = await cld.detect(sample); - debug('Checking language', 'probability', result.languages); - if (result.reliable) { - debug( - 'Language detected reliably, setting spellchecker language to', - result.languages[0].code, - ); - - return result.languages[0].code; - } - } catch (error) { - console.error(error); - return null; - } - }); -}; diff --git a/src/electron/ipc-api/index.ts b/src/electron/ipc-api/index.ts index 1f69c04ee..f8306d591 100644 --- a/src/electron/ipc-api/index.ts +++ b/src/electron/ipc-api/index.ts @@ -5,7 +5,7 @@ import sessionStorage from './sessionStorage'; import appIndicator from './appIndicator'; import download from './download'; import localServer from './localServer'; -import cld from './cld'; +import languageDetect from './languageDetect'; import dnd from './dnd'; import focusState from './focusState'; @@ -20,7 +20,7 @@ export default (params: { appIndicator(params); download(params); localServer(params); - cld(); + languageDetect(); dnd(); focusState(params); }; diff --git a/src/electron/ipc-api/languageDetect.ts b/src/electron/ipc-api/languageDetect.ts new file mode 100644 index 000000000..d344f7097 --- /dev/null +++ b/src/electron/ipc-api/languageDetect.ts @@ -0,0 +1,19 @@ +import { ipcMain } from 'electron'; + +import LanguageDetect from 'languagedetect'; + +const debug = require('../../preload-safe-debug')('Ferdium:ipcApi:languageDetect'); + +export default async () => { + ipcMain.handle('detect-language', async (_event, { sample }) => { + if (!LanguageDetect) { + return null; + } + const langDetector = new LanguageDetect(); + langDetector.setLanguageType('iso2'); + debug('Checking language for sample:', sample); + const result = langDetector.detect(sample, 1); + debug('Language detection result:', result); + return result[0][0]; + }); +}; -- cgit v1.2.3-54-g00ecf