1
0
Files
auto-git-gui/preload.js

50 lines
3.2 KiB
JavaScript

const { contextBridge, ipcRenderer } = require('electron');
contextBridge.exposeInMainWorld('settingsAPI', {
getSkyMode: () => ipcRenderer.invoke('get-skymode'),
setSkyMode: val => ipcRenderer.invoke('set-skymode', val),
getSkipPrompt: () => ipcRenderer.invoke('get-skip-git-prompt'),
setSkipPrompt: val => ipcRenderer.invoke('set-skip-git-prompt', val),
getIntelligentCommitThreshold: () => ipcRenderer.invoke('get-intelligent-commit-threshold'),
setIntelligentCommitThreshold: value => ipcRenderer.invoke('set-intelligent-commit-threshold', value),
getCommitModel: () => ipcRenderer.invoke('get-commit-model'),
setCommitModel: (model) => ipcRenderer.invoke('set-commit-model', model),
getReadmeModel: () => ipcRenderer.invoke('get-readme-model'),
setReadmeModel: (model) => ipcRenderer.invoke('set-readme-model', model),
close: () => ipcRenderer.send('close-settings')
});
contextBridge.exposeInMainWorld('electronAPI', {
getFolders: () => ipcRenderer.invoke('get-folders'),
addFolder: () => ipcRenderer.invoke('add-folder'),
removeFolder: folderObj=> ipcRenderer.invoke('remove-folder', folderObj),
getSelected: () => ipcRenderer.invoke('get-selected'),
setSelected: folderObj=> ipcRenderer.invoke('set-selected', folderObj),
getCommits: folderObj=> ipcRenderer.invoke('get-commits', folderObj),
diffCommit: (folderObj, hash) => ipcRenderer.invoke('diff-commit', folderObj, hash),
revertCommit: (folderObj, hash) => ipcRenderer.invoke('revert-commit', folderObj, hash),
snapshotCommit: (folderObj, hash) => ipcRenderer.invoke('snapshot-commit', folderObj, hash),
checkoutCommit: (folderObj, hash) => ipcRenderer.invoke('checkout-commit', folderObj, hash),
getCommitCount: folderObj=> ipcRenderer.invoke('get-commit-count', folderObj),
hasDiffs: folderObj=> ipcRenderer.invoke('has-diffs', folderObj),
removeGitFolder:folderObj=> ipcRenderer.invoke('remove-git-folder', folderObj),
commitCurrentFolder: (folderObj, message) => ipcRenderer.invoke('commit-current-folder', folderObj, message),
showFolderContextMenu: folderPath => ipcRenderer.send('show-folder-context-menu', folderPath),
setMonitoring: (folderObj, monitoring) => ipcRenderer.invoke('set-monitoring', folderObj.path, monitoring),
getFolderTree: (folderPath) => ipcRenderer.invoke('get-folder-tree', folderPath),
getIntelligentCommitThreshold: () => ipcRenderer.invoke('get-intelligent-commit-threshold'),
setIntelligentCommitThreshold: value => ipcRenderer.invoke('set-intelligent-commit-threshold', value),
ollamaList: () => ipcRenderer.invoke('ollama-list'),
ollamaPull: (model) => ipcRenderer.invoke('ollama-pull', model),
onTrayToggleMonitoring: (callback) => ipcRenderer.on('tray-toggle-monitoring', callback),
onTrayRemoveFolder: (callback) => ipcRenderer.on('tray-remove-folder', callback),
onTrayAddFolder: (callback) => ipcRenderer.on('tray-add-folder', callback),
});
ipcRenderer.on('repo-updated', (_e, folder) => {
window.dispatchEvent(new CustomEvent('repo-updated', { detail: folder }));
});
ipcRenderer.on('skymode-changed', (_e, val) => {
window.dispatchEvent(new CustomEvent('skymode-changed', { detail: val }));
});