Files

27 lines
1.3 KiB
JavaScript

"use strict";
const electron = require("electron");
const preload = require("@electron-toolkit/preload");
const api = {
windowControls: (action) => electron.ipcRenderer.send("window-controls", action),
startTranscription: (filePath, options) => electron.ipcRenderer.invoke("start-transcription", { filePath, options }),
onTranscriptionProgress: (callback) => electron.ipcRenderer.on("transcription-progress", (_, progress) => callback(progress)),
onTranscriptionData: (callback) => electron.ipcRenderer.on("transcription-data", (_, data) => callback(data)),
detectHardware: () => electron.ipcRenderer.invoke("detect-hardware"),
openExplorer: (path) => electron.ipcRenderer.send("open-explorer", path),
readSrt: (filePath) => electron.ipcRenderer.invoke("read-srt", filePath),
saveSrt: (filePath, content) => electron.ipcRenderer.invoke("save-srt", { filePath, content }),
selectFile: (filters) => electron.ipcRenderer.invoke("select-file", filters),
optimizeSrt: (filePath) => electron.ipcRenderer.invoke("optimize-srt", filePath)
};
if (process.contextIsolated) {
try {
preload.exposeElectronAPI();
electron.contextBridge.exposeInMainWorld("api", api);
} catch (error) {
console.error(error);
}
} else {
window.electron = preload.exposeElectronAPI();
window.api = api;
}