-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpreload.js
More file actions
123 lines (104 loc) · 5.74 KB
/
preload.js
File metadata and controls
123 lines (104 loc) · 5.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
const { contextBridge, ipcRenderer } = require('electron');
contextBridge.exposeInMainWorld('wslCleaner', {
// Window controls
minimize: () => ipcRenderer.send('window-minimize'),
maximize: () => ipcRenderer.send('window-maximize'),
close: () => ipcRenderer.send('window-close'),
quit: () => ipcRenderer.send('app-quit'),
reload: () => ipcRenderer.send('window-reload'),
toggleFullscreen: () => ipcRenderer.send('window-toggle-fullscreen'),
// WSL detection
checkWsl: () => ipcRenderer.invoke('check-wsl'),
detectTools: (distro) => ipcRenderer.invoke('detect-tools', distro),
// Cleanup tasks
runCleanup: (opts) => ipcRenderer.invoke('run-cleanup', opts),
// Disk compaction
findVhdx: (distro) => ipcRenderer.invoke('find-vhdx', distro),
getFileSize: (filePath) => ipcRenderer.invoke('get-file-size', filePath),
getAvailableSpace: (distro) => ipcRenderer.invoke('get-available-space', distro),
runWslCommand: (opts) => ipcRenderer.invoke('run-wsl-command', opts),
optimizeVhdx: (opts) => ipcRenderer.invoke('optimize-vhdx', opts),
// Size estimation
estimateTaskSizes: (opts) => ipcRenderer.invoke('estimate-task-sizes', opts),
// Disk usage scanning (treemap)
scanDiskUsage: (opts) => ipcRenderer.invoke('scan-disk-usage', opts),
cancelDiskScan: () => ipcRenderer.invoke('cancel-disk-scan'),
// Health info
getHealthInfo: (distro) => ipcRenderer.invoke('get-health-info', distro),
// Performance benchmarking
benchmarkStartupTime: (opts) => ipcRenderer.invoke('benchmark-startup-time', opts),
profileShellStartup: (opts) => ipcRenderer.invoke('profile-shell-startup', opts),
getBenchmarkHistory: () => ipcRenderer.invoke('get-benchmark-history'),
saveBenchmarkRecord: (record) => ipcRenderer.invoke('save-benchmark-record', record),
// Startup Manager
getStartupServices: (distro) => ipcRenderer.invoke('get-startup-services', distro),
setServiceState: (opts) => ipcRenderer.invoke('set-service-state', opts),
getServiceDetails: (opts) => ipcRenderer.invoke('get-service-details', opts),
getRcLocal: (distro) => ipcRenderer.invoke('get-rc-local', distro),
// WSL Config Editor
getSystemResources: () => ipcRenderer.invoke('get-system-resources'),
readWslConfig: () => ipcRenderer.invoke('read-wslconfig'),
writeWslConfig: (config) => ipcRenderer.invoke('write-wslconfig', config),
readWslConf: (distro) => ipcRenderer.invoke('read-wslconf', distro),
writeWslConf: (distro, config) => ipcRenderer.invoke('write-wslconf', distro, config),
// Distro management
exportDistro: (opts) => ipcRenderer.invoke('export-distro', opts),
importDistro: (opts) => ipcRenderer.invoke('import-distro', opts),
cloneDistro: (opts) => ipcRenderer.invoke('clone-distro', opts),
restartDistro: (opts) => ipcRenderer.invoke('restart-distro', opts),
getDistroComparison: (distros) => ipcRenderer.invoke('get-distro-comparison', distros),
// Distro migration
getDefaultUser: (distro) => ipcRenderer.invoke('get-default-user', distro),
getDriveSpace: (drivePath) => ipcRenderer.invoke('get-drive-space', drivePath),
unregisterDistro: (opts) => ipcRenderer.invoke('unregister-distro', opts),
migrateDistro: (opts) => ipcRenderer.invoke('migrate-distro', opts),
onMigrateStep: (callback) => {
const handler = (_event, data) => callback(data);
ipcRenderer.on('migrate-step', handler);
return () => ipcRenderer.removeListener('migrate-step', handler);
},
showSaveDialog: (opts) => ipcRenderer.invoke('show-save-dialog', opts),
showOpenDialog: (opts) => ipcRenderer.invoke('show-open-dialog', opts),
// App info & external URLs
getAppVersion: () => ipcRenderer.invoke('get-app-version'),
openExternal: (url) => ipcRenderer.invoke('open-external-url', url),
// Streaming output listener
onTaskOutput: (callback) => {
const handler = (_event, data) => callback(data);
ipcRenderer.on('task-output', handler);
return () => ipcRenderer.removeListener('task-output', handler);
},
// Cleanup history / stats
getCleanupHistory: () => ipcRenderer.invoke('get-cleanup-history'),
saveCleanupSession: (data) => ipcRenderer.invoke('save-cleanup-session', data),
clearCleanupHistory: () => ipcRenderer.invoke('clear-cleanup-history'),
// Task preferences
getTaskPreferences: () => ipcRenderer.invoke('get-task-preferences'),
saveTaskPreferences: (prefs) => ipcRenderer.invoke('save-task-preferences', prefs),
// Auto-update
checkForUpdates: () => ipcRenderer.invoke('check-for-updates'),
installUpdate: () => ipcRenderer.invoke('install-update'),
onUpdateStatus: (callback) => {
const handler = (_event, data) => callback(data);
ipcRenderer.on('update-status', handler);
return () => ipcRenderer.removeListener('update-status', handler);
},
// i18n / Locale
getLocaleData: (code) => ipcRenderer.invoke('get-locale-data', code),
getLanguages: () => ipcRenderer.invoke('get-languages'),
getLocalePreference: () => ipcRenderer.invoke('get-locale-preference'),
saveLocalePreference: (code) => ipcRenderer.invoke('save-locale-preference', code),
// System tray & alerts
saveTrayPreferences: (prefs) => ipcRenderer.invoke('save-tray-preferences', prefs),
getTrayLatestStats: () => ipcRenderer.invoke('tray-get-latest-stats'),
onTrayStatsUpdated: (callback) => {
const handler = (_event, data) => callback(data);
ipcRenderer.on('tray-stats-updated', handler);
return () => ipcRenderer.removeListener('tray-stats-updated', handler);
},
onNotificationNavigate: (callback) => {
const handler = (_event, page) => callback(page);
ipcRenderer.on('notification-navigate', handler);
return () => ipcRenderer.removeListener('notification-navigate', handler);
},
});