Skip to content

Commit 9c16d35

Browse files
jonathanlabcharlesvien
authored andcommitted
refactor: move fs service to trpc
1 parent c6a8296 commit 9c16d35

File tree

18 files changed

+239
-283
lines changed

18 files changed

+239
-283
lines changed

apps/array/src/main/di/container.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,16 @@ import { Container } from "inversify";
33
import { ContextMenuService } from "../services/context-menu/service.js";
44
import { DockBadgeService } from "../services/dock-badge/service.js";
55
import { ExternalAppsService } from "../services/external-apps/service.js";
6+
import { FsService } from "../services/fs/service.js";
67
import { GitService } from "../services/git/service.js";
78
import { MAIN_TOKENS } from "./tokens.js";
89

910
export const container = new Container({
1011
defaultScope: "Singleton",
1112
});
1213

14+
container.bind(MAIN_TOKENS.ContextMenuService).to(ContextMenuService);
1315
container.bind(MAIN_TOKENS.DockBadgeService).to(DockBadgeService);
1416
container.bind(MAIN_TOKENS.ExternalAppsService).to(ExternalAppsService);
17+
container.bind(MAIN_TOKENS.FsService).to(FsService);
1518
container.bind(MAIN_TOKENS.GitService).to(GitService);
16-
container.bind(MAIN_TOKENS.ContextMenuService).to(ContextMenuService);

apps/array/src/main/di/tokens.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@ export const MAIN_TOKENS = Object.freeze({
99
ContextMenuService: Symbol.for("Main.ContextMenuService"),
1010
DockBadgeService: Symbol.for("Main.DockBadgeService"),
1111
ExternalAppsService: Symbol.for("Main.ExternalAppsService"),
12+
FsService: Symbol.for("Main.FsService"),
1213
GitService: Symbol.for("Main.GitService"),
1314
});

apps/array/src/main/index.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ type TaskController = unknown;
3535

3636
import { registerFileWatcherIpc } from "./services/fileWatcher.js";
3737
import { registerFoldersIpc } from "./services/folders.js";
38-
import { registerFsIpc } from "./services/fs.js";
3938
import { registerGitIpc } from "./services/git.js";
4039
import "./services/index.js";
4140
import { ExternalAppsService } from "./services/external-apps/service.js";
@@ -299,7 +298,6 @@ ipcMain.handle("app:get-version", () => app.getVersion());
299298
registerOAuthHandlers();
300299
registerGitIpc();
301300
registerAgentIpc(taskControllers, () => mainWindow);
302-
registerFsIpc();
303301
registerFileWatcherIpc(() => mainWindow);
304302
registerFoldersIpc(() => mainWindow);
305303
registerWorktreeIpc();

apps/array/src/main/preload.ts

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -82,12 +82,6 @@ contextBridge.exposeInMainWorld("electronAPI", {
8282
message: string;
8383
}) => void,
8484
): (() => void) => createIpcListener(`clone-progress:${cloneId}`, listener),
85-
listRepoFiles: (
86-
repoPath: string,
87-
query?: string,
88-
limit?: number,
89-
): Promise<Array<{ path: string; name: string }>> =>
90-
ipcRenderer.invoke("list-repo-files", repoPath, query, limit),
9185
// Agent API
9286
agentStart: async (
9387
params: AgentStartParams,
@@ -124,15 +118,7 @@ contextBridge.exposeInMainWorld("electronAPI", {
124118
channel: string,
125119
listener: (payload: unknown) => void,
126120
): (() => void) => createIpcListener(channel, listener),
127-
// Plan mode operations
128-
readRepoFile: (repoPath: string, filePath: string): Promise<string | null> =>
129-
ipcRenderer.invoke("read-repo-file", repoPath, filePath),
130-
writeRepoFile: (
131-
repoPath: string,
132-
filePath: string,
133-
content: string,
134-
): Promise<void> =>
135-
ipcRenderer.invoke("write-repo-file", repoPath, filePath, content),
121+
// Git operations
136122
getChangedFilesHead: (
137123
repoPath: string,
138124
): Promise<Array<{ path: string; status: string; originalPath?: string }>> =>

apps/array/src/main/services/fs.ts

Lines changed: 0 additions & 212 deletions
This file was deleted.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import { z } from "zod";
2+
3+
export const listRepoFilesInput = z.object({
4+
repoPath: z.string(),
5+
query: z.string().optional(),
6+
limit: z.number().optional(),
7+
});
8+
9+
export const readRepoFileInput = z.object({
10+
repoPath: z.string(),
11+
filePath: z.string(),
12+
});
13+
14+
export const writeRepoFileInput = z.object({
15+
repoPath: z.string(),
16+
filePath: z.string(),
17+
content: z.string(),
18+
});
19+
20+
const fileEntry = z.object({
21+
path: z.string(),
22+
name: z.string(),
23+
changed: z.boolean().optional(),
24+
});
25+
26+
export const listRepoFilesOutput = z.array(fileEntry);
27+
export const readRepoFileOutput = z.string().nullable();
28+
29+
export type ListRepoFilesInput = z.infer<typeof listRepoFilesInput>;
30+
export type ReadRepoFileInput = z.infer<typeof readRepoFileInput>;
31+
export type WriteRepoFileInput = z.infer<typeof writeRepoFileInput>;
32+
export type FileEntry = z.infer<typeof fileEntry>;

0 commit comments

Comments
 (0)