11import { contextBridge , ipcRenderer } from "electron" ;
22import { Category , Project } from "../types/developer-cleaner" ;
3- import type { FolderItem , ProjectInfo } from "../renderer/types" ;
4-
5- interface Folder {
6- path : string ;
7- size : number ;
8- name : string ;
9- }
3+ import type { FolderItem , ProjectInfo , ElectronAPI , Folder } from "../renderer/types" ;
104
115interface ScanFoldersOptions {
126 paths : string [ ] ;
@@ -18,36 +12,6 @@ interface ScanDeveloperOptions {
1812 enabledCategories : Category [ ] ;
1913}
2014
21- // Define the shape of our API
22- interface ElectronAPI {
23- getAppDataPaths : ( ) => Promise < string [ ] > ;
24- scanFolders : ( paths : string [ ] , maxDepth : number ) => Promise < void > ;
25- scanDeveloperCaches : ( basePaths : string [ ] , enabledCategories : Category [ ] ) => Promise < void > ;
26- stopAppDataScan : ( ) => Promise < void > ;
27- stopDeveloperScan : ( ) => Promise < void > ;
28- deleteFolders : ( folderPaths : string [ ] ) => Promise < void > ;
29- checkAdmin : ( ) => Promise < boolean > ;
30- selectDirectory : ( ) => Promise < string | null > ;
31- getUserHome : ( ) => Promise < string > ;
32- getFolderContents : ( folderPath : string ) => Promise < string [ ] > ;
33- onScanProgress : ( callback : ( count : number ) => void ) => void ;
34- onScanCurrentPath : ( callback : ( path : string ) => void ) => void ;
35- onDeleteProgress : ( callback : ( count : number ) => void ) => void ;
36- onScanFolderFound : ( callback : ( folders : Folder [ ] ) => void ) => void ;
37- onDeveloperProjectFound : ( callback : ( project : Project ) => void ) => void ;
38- onUpdateStatus : ( callback : ( status : { message : string ; data ?: any } ) => void ) => void ;
39- checkForUpdates : ( ) => Promise < void > ;
40- quitAndInstall : ( ) => Promise < void > ;
41- removeAllListeners : ( channel : string ) => void ;
42- saveFolders : ( folders : FolderItem [ ] ) => Promise < void > ;
43- loadSavedFolders : ( ) => Promise < FolderItem [ ] > ;
44- getSavedFoldersCount : ( ) => Promise < number > ;
45- getDirectorySize : ( path : string ) => Promise < number > ;
46- saveDeveloperProjects : ( projects : ProjectInfo [ ] ) => Promise < void > ;
47- loadSavedDeveloperProjects : ( ) => Promise < ProjectInfo [ ] > ;
48- getSavedDeveloperProjectsCount : ( ) => Promise < number > ;
49- }
50-
5115// Export the API type for use in other files
5216export type { ElectronAPI } ;
5317
@@ -112,10 +76,23 @@ const api: ElectronAPI = {
11276 } ,
11377
11478 // Listen for developer-project-found (real-time project updates)
115- onDeveloperProjectFound : ( callback : ( project : Project ) => void ) => {
116- ipcRenderer . on ( "developer-project-found" , ( _event , project ) =>
117- callback ( project )
118- ) ;
79+ onDeveloperProjectFound : ( callback : ( project : ProjectInfo ) => void ) => {
80+ ipcRenderer . on ( "developer-project-found" , ( _event , mainProject : Project ) => {
81+ // Convert Project to ProjectInfo
82+ const project : ProjectInfo = {
83+ path : mainProject . path ,
84+ type : mainProject . type ,
85+ lastModified : mainProject . lastModified || "" ,
86+ totalCacheSize : mainProject . totalCacheSize ,
87+ selectedCacheSize : 0 , // Default to 0 since main process doesn't track this
88+ caches : mainProject . caches . map ( cache => ( {
89+ ...cache ,
90+ category : cache . category || "Unknown" as any , // Convert string to CacheCategory
91+ selectedSize : 0 // Default to 0 since main process doesn't track this
92+ } ) )
93+ } ;
94+ callback ( project ) ;
95+ } ) ;
11996 } ,
12097
12198 // Remove listeners
@@ -130,7 +107,7 @@ const api: ElectronAPI = {
130107 getDirectorySize : ( path : string ) => ipcRenderer . invoke ( "get-directory-size" , path ) ,
131108
132109 // Developer cleaner handlers
133- saveDeveloperProjects : ( projects : any [ ] ) => ipcRenderer . invoke ( "save-developer-projects" , projects ) ,
110+ saveDeveloperProjects : ( projects : ProjectInfo [ ] ) => ipcRenderer . invoke ( "save-developer-projects" , projects ) ,
134111 loadSavedDeveloperProjects : ( ) => ipcRenderer . invoke ( "load-saved-developer-projects" ) ,
135112 getSavedDeveloperProjectsCount : ( ) => ipcRenderer . invoke ( "get-saved-developer-projects-count" ) ,
136113
0 commit comments