71 lines
3.7 KiB
JavaScript
71 lines
3.7 KiB
JavaScript
/**
|
|
* Electron Preload Script
|
|
* Exposes safe IPC channels to the renderer via contextBridge.
|
|
*/
|
|
const { contextBridge, ipcRenderer } = require('electron');
|
|
|
|
contextBridge.exposeInMainWorld('electronAPI', {
|
|
// Folder selection dialog
|
|
selectFolder: () => ipcRenderer.invoke('select-folder'),
|
|
|
|
// Settings
|
|
loadSettings: () => ipcRenderer.invoke('load-settings'),
|
|
saveSettings: (settings) => ipcRenderer.invoke('save-settings', settings),
|
|
|
|
// File operations
|
|
readFile: (filePath) => ipcRenderer.invoke('read-file', filePath),
|
|
writeFile: (filePath, content) => ipcRenderer.invoke('write-file', filePath, content),
|
|
moveToArchive: (filePath) => ipcRenderer.invoke('move-to-archive', filePath),
|
|
|
|
// Watcher control
|
|
startWatcher: (config) => ipcRenderer.invoke('start-watcher', config),
|
|
stopWatcher: () => ipcRenderer.invoke('stop-watcher'),
|
|
pauseWatcher: () => ipcRenderer.invoke('pause-watcher'),
|
|
resumeWatcher: () => ipcRenderer.invoke('resume-watcher'),
|
|
getWatcherStatus: () => ipcRenderer.invoke('get-watcher-status'),
|
|
|
|
// Werksnummer Watcher control
|
|
startWerksWatcher: (config) => ipcRenderer.invoke('start-werks-watcher', config),
|
|
stopWerksWatcher: () => ipcRenderer.invoke('stop-werks-watcher'),
|
|
pauseWerksWatcher: () => ipcRenderer.invoke('pause-werks-watcher'),
|
|
resumeWerksWatcher: () => ipcRenderer.invoke('resume-werks-watcher'),
|
|
getWerksWatcherStatus: () => ipcRenderer.invoke('get-werks-watcher-status'),
|
|
|
|
// Outbound Watcher control
|
|
startOutboundWatcher: (config) => ipcRenderer.invoke('start-outbound-watcher', config),
|
|
stopOutboundWatcher: () => ipcRenderer.invoke('stop-outbound-watcher'),
|
|
pauseOutboundWatcher: () => ipcRenderer.invoke('pause-outbound-watcher'),
|
|
resumeOutboundWatcher: () => ipcRenderer.invoke('resume-outbound-watcher'),
|
|
getOutboundWatcherStatus: () => ipcRenderer.invoke('get-outbound-watcher-status'),
|
|
|
|
// Watcher events (from main → renderer)
|
|
onFileDetected: (callback) => ipcRenderer.on('watcher-file-detected', (_, data) => callback(data)),
|
|
onWatcherError: (callback) => ipcRenderer.on('watcher-error', (_, data) => callback(data)),
|
|
onWatcherReady: (callback) => ipcRenderer.on('watcher-ready', (_, data) => callback(data)),
|
|
|
|
// Outbound Watcher events
|
|
onOutboundFileDetected: (callback) => ipcRenderer.on('outbound-watcher-file-detected', (_, data) => callback(data)),
|
|
onOutboundWatcherError: (callback) => ipcRenderer.on('outbound-watcher-error', (_, data) => callback(data)),
|
|
onOutboundWatcherReady: (callback) => ipcRenderer.on('outbound-watcher-ready', (_, data) => callback(data)),
|
|
|
|
// Werksnummer Watcher events
|
|
onWerksFileProcessed: (callback) => ipcRenderer.on('werks-watcher-success', (_, data) => callback(data)),
|
|
onWerksWatcherError: (callback) => ipcRenderer.on('werks-watcher-error', (_, data) => callback(data)),
|
|
onWerksWatcherReady: (callback) => ipcRenderer.on('werks-watcher-ready', (_, data) => callback(data)),
|
|
|
|
// Conversion History DB
|
|
dbInsert: (record) => ipcRenderer.invoke('db-insert', record),
|
|
dbGetAll: (params) => ipcRenderer.invoke('db-get-all', params),
|
|
dbGetById: (id) => ipcRenderer.invoke('db-get-by-id', id),
|
|
dbDelete: (id) => ipcRenderer.invoke('db-delete', id),
|
|
dbGetStats: () => ipcRenderer.invoke('db-get-stats'),
|
|
|
|
// Configuration DB
|
|
dbInsertConfig: (configData) => ipcRenderer.invoke('db-insert-config', configData),
|
|
dbGetConfig: () => ipcRenderer.invoke('db-get-config'),
|
|
|
|
// EDIFACT Validation & Alternative Parser (ts-edifact library, Electron only)
|
|
validateEdifact: (content) => ipcRenderer.invoke('validate-edifact', content),
|
|
parseEdifactLib: (content) => ipcRenderer.invoke('parse-edifact-lib', content)
|
|
});
|