feat: build licensed desktop image processor
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
import { contextBridge, ipcRenderer, webUtils } from 'electron'
|
||||
import type {
|
||||
DesktopBridge,
|
||||
ProcessProgress,
|
||||
} from '../../src/shared/types'
|
||||
|
||||
const bridge: DesktopBridge = {
|
||||
getAppInfo: () => ipcRenderer.invoke('app:info'),
|
||||
getLicenseState: () => ipcRenderer.invoke('license:state'),
|
||||
activate: (activationCode) => ipcRenderer.invoke('license:activate', activationCode),
|
||||
validateLicense: () => ipcRenderer.invoke('license:validate'),
|
||||
clearLicense: () => ipcRenderer.invoke('license:clear'),
|
||||
checkVersion: () => ipcRenderer.invoke('license:check-version'),
|
||||
downloadUpdate: (downloadUrl, latestVersion) => ipcRenderer.invoke(
|
||||
'license:download-update',
|
||||
downloadUrl,
|
||||
latestVersion,
|
||||
),
|
||||
selectImages: () => ipcRenderer.invoke('images:select-files'),
|
||||
selectFolder: () => ipcRenderer.invoke('images:select-folder'),
|
||||
selectOutputDirectory: () => ipcRenderer.invoke('images:select-output'),
|
||||
pathsForFiles: (files) => files
|
||||
.map((file) => webUtils.getPathForFile(file))
|
||||
.filter(Boolean),
|
||||
inspectImages: (paths) => ipcRenderer.invoke('images:inspect', paths),
|
||||
processImages: (options) => ipcRenderer.invoke('images:process', options),
|
||||
cancelProcessing: () => ipcRenderer.invoke('images:cancel'),
|
||||
revealItem: (filePath) => ipcRenderer.invoke('images:reveal', filePath),
|
||||
onProcessProgress: (callback) => {
|
||||
const listener = (_event: Electron.IpcRendererEvent, progress: ProcessProgress) => callback(progress)
|
||||
ipcRenderer.on('images:progress', listener)
|
||||
return () => ipcRenderer.removeListener('images:progress', listener)
|
||||
},
|
||||
}
|
||||
|
||||
contextBridge.exposeInMainWorld('desktop', bridge)
|
||||
Reference in New Issue
Block a user