Files
vda-to-edifact-converter/preload.js
2026-03-13 09:53:40 +01:00

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)
});