refactor: tighten upload and viewer contracts

This commit is contained in:
Tom Boullay
2026-05-13 17:50:26 +02:00
parent 30ff9826dc
commit f6ac71dad2
11 changed files with 108 additions and 86 deletions
+19 -3
View File
@@ -83,6 +83,24 @@ function isFileDiff(value: unknown): value is FileDiff {
&& (value.status === 'new' || value.status === 'changed' || value.status === 'deleted')
}
function parseFileDiffs(value: unknown): FileDiff[] {
if (!Array.isArray(value)) {
throw new Error('Reponse serveur invalide')
}
const diffs: FileDiff[] = []
for (const diff of value) {
if (!isFileDiff(diff)) {
throw new Error('Reponse serveur invalide')
}
diffs.push(diff)
}
return diffs
}
function buildUploadFormData(folder: FolderEntry, gitModelMode: GitModelMode): FormData {
const formData = new FormData()
formData.append('folderName', folder.folderName)
@@ -126,11 +144,9 @@ export async function checkFolderDiffs(
}
}
const diffs = Array.isArray(data.diffs) ? data.diffs.filter(isFileDiff) : []
return {
exists: true,
diffs,
diffs: parseFileDiffs(data.diffs),
warning,
}
}