Harden worker probe response validation and add tests

This commit is contained in:
Robert Wojciechowski
2026-03-01 22:36:57 +00:00
parent 16ea22a643
commit a694272b40
2 changed files with 118 additions and 2 deletions
+23 -2
View File
@@ -178,11 +178,32 @@ export function createApiClient(baseUrl) {
return { ok: false, status: response.status, queueRemaining: null };
}
const data = await response.json().catch(() => ({}));
let data;
try {
data = await response.json();
} catch {
return { ok: false, status: response.status, queueRemaining: null };
}
if (!data || typeof data !== "object" || Array.isArray(data)) {
return { ok: false, status: response.status, queueRemaining: null };
}
const execInfo = data.exec_info;
if (!execInfo || typeof execInfo !== "object" || Array.isArray(execInfo)) {
return { ok: false, status: response.status, queueRemaining: null };
}
const rawQueueRemaining = execInfo.queue_remaining;
const queueRemaining = Number(rawQueueRemaining);
if (!Number.isFinite(queueRemaining)) {
return { ok: false, status: response.status, queueRemaining: null };
}
return {
ok: true,
status: response.status,
queueRemaining: data.exec_info?.queue_remaining || 0,
queueRemaining: Math.max(0, queueRemaining),
};
} finally {
clearTimeout(timeoutId);