Skip to content

Commit 9f857f3

Browse files
PavelLaptevgitbutler-client
authored andcommitted
fix(stack-service): normalize commit stats shape
Convert various backend commit stats shapes into a single frontend format expected by the UI. Some responses use camelCase keys (linesAdded/linesRemoved/filesChanged) while others use snake_case (lines_added/lines_removed/files_changed). The code now detects the shape and maps snake_case to the canonical camelCase shape before storing in the response transform. This prevents mismatched stat access and makes downstream code rely on one consistent stats object.
1 parent 3f2f7a6 commit 9f857f3

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

apps/desktop/src/lib/stacks/stackService.svelte.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1175,10 +1175,25 @@ function injectEndpoints(api: ClientState['backendApi'], uiState: UiState) {
11751175
],
11761176
transformResponse(rsp: CommitDetails) {
11771177
const changes = changesAdapter.addMany(changesAdapter.getInitialState(), rsp.changes);
1178+
const rawStats = rsp.stats as
1179+
| TreeStats
1180+
| {
1181+
lines_added: number;
1182+
lines_removed: number;
1183+
files_changed: number;
1184+
};
1185+
const stats =
1186+
'linesAdded' in rawStats
1187+
? rawStats
1188+
: {
1189+
linesAdded: rawStats.lines_added,
1190+
linesRemoved: rawStats.lines_removed,
1191+
filesChanged: rawStats.files_changed
1192+
};
11781193
return {
11791194
changes: changes,
11801195
details: rsp.commit,
1181-
stats: rsp.stats,
1196+
stats,
11821197
conflictEntries: rsp.conflictEntries
11831198
? new ConflictEntries(
11841199
rsp.conflictEntries.ancestorEntries,

0 commit comments

Comments
 (0)