45 lines
2.3 KiB
JavaScript
45 lines
2.3 KiB
JavaScript
const { contextBridge, ipcRenderer } = require('electron');
|
|
|
|
// Expose protected methods that allow the renderer process to use
|
|
// the ipcRenderer without exposing the entire object
|
|
contextBridge.exposeInMainWorld('electronAPI', {
|
|
// Image file operations
|
|
selectImages: () => ipcRenderer.invoke('select-images'),
|
|
selectDirectory: () => ipcRenderer.invoke('select-directory'),
|
|
readDirectory: (dirPath) => ipcRenderer.invoke('read-directory', dirPath),
|
|
readImageDirectoryRecursive: (dirPath) => ipcRenderer.invoke('read-image-directory-recursive', dirPath),
|
|
copyImage: (sourcePath, destPath) => ipcRenderer.invoke('copy-image', sourcePath, destPath),
|
|
|
|
// Audio file operations
|
|
selectAudio: () => ipcRenderer.invoke('select-audio'),
|
|
readAudioDirectory: (dirPath) => ipcRenderer.invoke('read-audio-directory', dirPath),
|
|
copyAudio: (sourcePath, destPath) => ipcRenderer.invoke('copy-audio', sourcePath, destPath),
|
|
|
|
// Video file operations
|
|
selectVideos: () => ipcRenderer.invoke('select-videos'),
|
|
readVideoDirectory: (dirPath) => ipcRenderer.invoke('read-video-directory', dirPath),
|
|
readVideoDirectoryRecursive: (dirPath) => ipcRenderer.invoke('read-video-directory-recursive', dirPath),
|
|
copyVideo: (sourcePath, destPath) => ipcRenderer.invoke('copy-video', sourcePath, destPath),
|
|
deleteVideo: (filePath) => ipcRenderer.invoke('delete-video', filePath),
|
|
|
|
// File system utilities
|
|
getAppPath: () => ipcRenderer.invoke('get-app-path'),
|
|
pathJoin: (...paths) => ipcRenderer.invoke('path-join', ...paths),
|
|
fileExists: (filePath) => ipcRenderer.invoke('file-exists', filePath),
|
|
createDirectory: (dirPath) => ipcRenderer.invoke('create-directory', dirPath),
|
|
deleteFile: (filePath) => ipcRenderer.invoke('delete-file', filePath),
|
|
saveBase64Image: (filePath, base64Data) => ipcRenderer.invoke('save-base64-image', filePath, base64Data),
|
|
|
|
// Platform info
|
|
platform: process.platform,
|
|
|
|
// Child window management
|
|
openChildWindow: (options) => ipcRenderer.invoke('open-child-window', options),
|
|
focusMainWindow: () => ipcRenderer.invoke('focus-main-window'),
|
|
|
|
// Version info
|
|
versions: {
|
|
node: process.versions.node,
|
|
electron: process.versions.electron
|
|
}
|
|
}); |