aboutsummaryrefslogtreecommitdiffstats
path: root/src/electron/ipc-api/cld.ts
blob: b80c48bf332492df6e7585c066913f1c6d213eb5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import { ipcMain } from 'electron';
// @ts-ignore
import cld from 'cld';

const debug = require('debug')('Ferdi: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;
    }
  });
};