Upload preload.js via GUI

This commit is contained in:
2026-02-02 19:01:00 +00:00
parent e7b3c9c447
commit 3f2e1d1e30

View File

@@ -2,32 +2,39 @@
const { contextBridge, ipcRenderer } = require('electron'); const { contextBridge, ipcRenderer } = require('electron');
contextBridge.exposeInMainWorld('electronAPI', { contextBridge.exposeInMainWorld('electronAPI', {
// Lokale Datei-Operationen
selectFolder: () => ipcRenderer.invoke('select-folder'), selectFolder: () => ipcRenderer.invoke('select-folder'),
selectFile: () => ipcRenderer.invoke('select-file'), selectFile: () => ipcRenderer.invoke('select-file'),
saveCredentials: (data) => ipcRenderer.invoke('save-credentials', data),
loadCredentials: () => ipcRenderer.invoke('load-credentials'),
createRepo: (data) => ipcRenderer.invoke('create-repo', data),
pushProject: (data) => ipcRenderer.invoke('push-project', data),
getBranches: (data) => ipcRenderer.invoke('getBranches', data),
getCommitLogs: (data) => ipcRenderer.invoke('getCommitLogs', data),
getFileTree: (data) => ipcRenderer.invoke('getFileTree', data), getFileTree: (data) => ipcRenderer.invoke('getFileTree', data),
readFile: (data) => ipcRenderer.invoke('readFile', data), readFile: (data) => ipcRenderer.invoke('readFile', data),
writeFile: (data) => ipcRenderer.invoke('writeFile', data), writeFile: (data) => ipcRenderer.invoke('writeFile', data),
deleteFile: (data) => ipcRenderer.invoke('deleteFile', data), deleteFile: (data) => ipcRenderer.invoke('deleteFile', data),
// Gitea Datei-Operationen
listGiteaRepos: (data) => ipcRenderer.invoke('list-gitea-repos', data), listGiteaRepos: (data) => ipcRenderer.invoke('list-gitea-repos', data),
getGiteaRepoContents: (data) => ipcRenderer.invoke('get-gitea-repo-contents', data), getGiteaRepoContents: (data) => ipcRenderer.invoke('get-gitea-repo-contents', data),
getGiteaFileContent: (data) => ipcRenderer.invoke('get-gitea-file-content', data), getGiteaFileContent: (data) => ipcRenderer.invoke('get-gitea-file-content', data),
readGiteaFile: (data) => ipcRenderer.invoke('read-gitea-file', data), readGiteaFile: (data) => ipcRenderer.invoke('read-gitea-file', data),
writeGiteaFile: (data) => ipcRenderer.invoke('write-gitea-file', data), writeGiteaFile: (data) => ipcRenderer.invoke('write-gitea-file', data),
uploadGiteaFile: (data) => ipcRenderer.invoke('upload-gitea-file', data), uploadGiteaFile: (data) => ipcRenderer.invoke('upload-gitea-file', data),
uploadLocalFolderToGitea: (data) => ipcRenderer.invoke('upload-local-folder-to-gitea', data),
downloadGiteaFolder: (data) => ipcRenderer.invoke('download-gitea-folder', data), downloadGiteaFolder: (data) => ipcRenderer.invoke('download-gitea-folder', data),
downloadGiteaFile: (data) => ipcRenderer.invoke('download-gitea-file', data), downloadGiteaFile: (data) => ipcRenderer.invoke('download-gitea-file', data),
prepareDownloadDrag: (data) => ipcRenderer.invoke('prepare-download-drag', data), uploadLocalFolderToGitea: (data) => ipcRenderer.invoke('upload-local-folder-to-gitea', data),
startNativeDrag: (filePath) => ipcRenderer.send('ondragstart', filePath),
// Repository & Git Management
saveCredentials: (data) => ipcRenderer.invoke('save-credentials', data),
loadCredentials: () => ipcRenderer.invoke('load-credentials'),
createRepo: (data) => ipcRenderer.invoke('create-repo', data),
pushProject: (data) => ipcRenderer.invoke('push-project', data),
getBranches: (data) => ipcRenderer.invoke('getBranches', data),
getCommitLogs: (data) => ipcRenderer.invoke('getCommitLogs', data),
uploadAndPush: (data) => ipcRenderer.invoke('upload-and-push', data), uploadAndPush: (data) => ipcRenderer.invoke('upload-and-push', data),
deleteGiteaRepo: (data) => ipcRenderer.invoke('delete-gitea-repo', data), deleteGiteaRepo: (data) => ipcRenderer.invoke('delete-gitea-repo', data),
// Drag & Drop
prepareDownloadDrag: (data) => ipcRenderer.invoke('prepare-download-drag', data),
startNativeDrag: (filePath) => ipcRenderer.send('ondragstart', filePath),
// Release Management // Release Management
listReleases: (data) => ipcRenderer.invoke('list-releases', data), listReleases: (data) => ipcRenderer.invoke('list-releases', data),
getRelease: (data) => ipcRenderer.invoke('get-release', data), getRelease: (data) => ipcRenderer.invoke('get-release', data),
@@ -52,20 +59,42 @@ contextBridge.exposeInMainWorld('electronAPI', {
getLocalCommitDetails: (data) => ipcRenderer.invoke('get-local-commit-details', data), getLocalCommitDetails: (data) => ipcRenderer.invoke('get-local-commit-details', data),
searchLocalCommits: (data) => ipcRenderer.invoke('search-local-commits', data), searchLocalCommits: (data) => ipcRenderer.invoke('search-local-commits', data),
// progress subscriptions // === UPDATER APIs ===
checkForUpdates: () => ipcRenderer.invoke('check-for-updates'),
getAppVersion: () => ipcRenderer.invoke('get-app-version'),
// Triggert den tatsächlichen Download des Assets
// WICHTIG: Muss in renderer.js als window.electronAPI.startUpdateDownload(asset) aufgerufen werden
startUpdateDownload: (asset) => ipcRenderer.invoke('start-update-download', asset),
// === Progress & Update Subscriptions ===
onUpdateAvailable: (cb) => {
const listener = (event, info) => cb(info);
ipcRenderer.on('update-available', listener);
return () => ipcRenderer.removeListener('update-available', listener);
},
onUpdateProgress: (cb) => {
const listener = (event, percent) => cb(percent);
ipcRenderer.on('update-progress', listener);
return () => ipcRenderer.removeListener('update-progress', listener);
},
onPushProgress: (cb) => { onPushProgress: (cb) => {
ipcRenderer.on('push-progress', (event, percent) => { const listener = (event, percent) => { try { cb(percent); } catch (_) {} };
try { cb(percent); } catch (_) {} ipcRenderer.on('push-progress', listener);
}); return () => ipcRenderer.removeListener('push-progress', listener);
}, },
onFolderUploadProgress: (cb) => { onFolderUploadProgress: (cb) => {
ipcRenderer.on('folder-upload-progress', (event, payload) => { const listener = (event, payload) => { try { cb(payload); } catch (_) {} };
try { cb(payload); } catch (_) {} ipcRenderer.on('folder-upload-progress', listener);
}); return () => ipcRenderer.removeListener('folder-upload-progress', listener);
}, },
onFolderDownloadProgress: (cb) => { onFolderDownloadProgress: (cb) => {
ipcRenderer.on('folder-download-progress', (event, payload) => { const listener = (event, payload) => { try { cb(payload); } catch (_) {} };
try { cb(payload); } catch (_) {} ipcRenderer.on('folder-download-progress', listener);
}); return () => ipcRenderer.removeListener('folder-download-progress', listener);
} }
}); });