Skip to content

Commit 7d73d6f

Browse files
committed
Fixes
1 parent b2d90e1 commit 7d73d6f

4 files changed

Lines changed: 66 additions & 89 deletions

File tree

src/main/preload.ts

Lines changed: 19 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,6 @@
11
import { contextBridge, ipcRenderer } from "electron";
22
import { 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

115
interface 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
5216
export 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

src/main/updateService.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import { app, BrowserWindow } from "electron";
1+
import { BrowserWindow } from "electron";
22
import { autoUpdater } from "electron-updater";
33
import log from "electron-log";
44

55
export class UpdateService {
6-
private mainWindow: BrowserWindow;
6+
private readonly mainWindow: BrowserWindow;
77

88
constructor(mainWindow: BrowserWindow) {
99
this.mainWindow = mainWindow;

src/renderer/types/common.ts

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,48 @@ export interface DeleteResult {
2323
path: string;
2424
success: boolean | "partial";
2525
}
26+
27+
export interface Folder {
28+
path: string;
29+
size: number;
30+
name: string;
31+
}
32+
33+
export interface ElectronAPI {
34+
getAppDataPaths: () => Promise<string[]>;
35+
scanFolders: (paths: string[], maxDepth: number) => Promise<void>;
36+
scanDeveloperCaches: (basePaths: string[], enabledCategories: DeveloperCategory[]) => Promise<void>;
37+
stopAppDataScan: () => Promise<void>;
38+
stopDeveloperScan: () => Promise<void>;
39+
deleteFolders: (folderPaths: string[]) => Promise<void>;
40+
checkAdmin: () => Promise<boolean>;
41+
selectDirectory: () => Promise<string | null>;
42+
getUserHome: () => Promise<string>;
43+
getFolderContents: (folderPath: string) => Promise<string[]>;
44+
onScanProgress: (callback: (count: number) => void) => void;
45+
onScanCurrentPath: (callback: (path: string) => void) => void;
46+
onDeleteProgress: (callback: (count: number) => void) => void;
47+
onScanFolderFound: (callback: (folders: Folder[]) => void) => void;
48+
onDeveloperProjectFound: (callback: (project: ProjectInfo) => void) => void;
49+
onUpdateStatus: (callback: (status: { message: string; data?: any }) => void) => void;
50+
checkForUpdates: () => Promise<void>;
51+
quitAndInstall: () => Promise<void>;
52+
removeAllListeners: (channel: string) => void;
53+
saveFolders: (folders: FolderItem[]) => Promise<void>;
54+
loadSavedFolders: () => Promise<FolderItem[]>;
55+
getSavedFoldersCount: () => Promise<number>;
56+
getDirectorySize: (path: string) => Promise<number>;
57+
saveDeveloperProjects: (projects: ProjectInfo[]) => Promise<void>;
58+
loadSavedDeveloperProjects: () => Promise<ProjectInfo[]>;
59+
getSavedDeveloperProjectsCount: () => Promise<number>;
60+
}
61+
62+
// Add global type augmentation for Window interface
63+
declare global {
64+
interface Window {
65+
electronAPI: ElectronAPI;
66+
}
67+
}
68+
69+
// Import types needed for ElectronAPI
70+
import type { ProjectInfo, DeveloperCategory } from "./developer-cleaner";

src/renderer/types/index.ts

Lines changed: 0 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,3 @@
11
// Export all types from different modules
22
export * from "./developer-cleaner";
33
export * from "./common";
4-
import type { FolderItem } from "./common";
5-
import type { ProjectInfo, DeveloperCategory } from "./developer-cleaner";
6-
7-
interface Folder {
8-
path: string;
9-
size: number;
10-
name: string;
11-
}
12-
13-
interface ElectronAPI {
14-
getAppDataPaths: () => Promise<string[]>;
15-
scanFolders: (paths: string[], maxDepth: number) => Promise<void>;
16-
scanDeveloperCaches: (basePaths: string[], enabledCategories: DeveloperCategory[]) => Promise<void>;
17-
stopAppDataScan: () => Promise<void>;
18-
stopDeveloperScan: () => Promise<void>;
19-
deleteFolders: (folderPaths: string[]) => Promise<void>;
20-
checkAdmin: () => Promise<boolean>;
21-
selectDirectory: () => Promise<string | null>;
22-
getUserHome: () => Promise<string>;
23-
getFolderContents: (folderPath: string) => Promise<string[]>;
24-
onScanProgress: (callback: (count: number) => void) => void;
25-
onScanCurrentPath: (callback: (path: string) => void) => void;
26-
onDeleteProgress: (callback: (count: number) => void) => void;
27-
onScanFolderFound: (callback: (folders: Folder[]) => void) => void;
28-
onDeveloperProjectFound: (callback: (project: ProjectInfo) => void) => void;
29-
onUpdateStatus: (callback: (status: { message: string; data?: any }) => void) => void;
30-
checkForUpdates: () => Promise<void>;
31-
quitAndInstall: () => Promise<void>;
32-
removeAllListeners: (channel: string) => void;
33-
saveFolders: (folders: FolderItem[]) => Promise<void>;
34-
loadSavedFolders: () => Promise<FolderItem[]>;
35-
getSavedFoldersCount: () => Promise<number>;
36-
getDirectorySize: (path: string) => Promise<number>;
37-
saveDeveloperProjects: (projects: ProjectInfo[]) => Promise<void>;
38-
loadSavedDeveloperProjects: () => Promise<ProjectInfo[]>;
39-
getSavedDeveloperProjectsCount: () => Promise<number>;
40-
}
41-
42-
declare global {
43-
interface Window {
44-
electronAPI: ElectronAPI;
45-
}
46-
}
47-
48-
export type { ElectronAPI, Folder }

0 commit comments

Comments
 (0)