refactor: tighten upload and viewer contracts
This commit is contained in:
+19
-3
@@ -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,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user