Standardise AbortController cancellation in setup and server health hooks
Add abortable API signals for setup status and server health/log fetches, document hook cancellation patterns, and cover stale refresh cancellation with tests.
This commit is contained in:
@@ -550,17 +550,18 @@ export async function deleteJailLocalOverride(name: string): Promise<void> {
|
||||
export async function fetchFail2BanLog(
|
||||
lines?: number,
|
||||
filter?: string,
|
||||
signal?: AbortSignal,
|
||||
): Promise<Fail2BanLogResponse> {
|
||||
const params = new URLSearchParams();
|
||||
if (lines !== undefined) params.set("lines", String(lines));
|
||||
if (filter !== undefined && filter !== "") params.set("filter", filter);
|
||||
const query = params.toString() ? `?${params.toString()}` : "";
|
||||
return get<Fail2BanLogResponse>(`${ENDPOINTS.configFail2BanLog}${query}`);
|
||||
return get<Fail2BanLogResponse>(`${ENDPOINTS.configFail2BanLog}${query}`, signal);
|
||||
}
|
||||
|
||||
/** Fetch fail2ban service health status with current log configuration. */
|
||||
export async function fetchServiceStatus(): Promise<ServiceStatusResponse> {
|
||||
return get<ServiceStatusResponse>(ENDPOINTS.configServiceStatus);
|
||||
export async function fetchServiceStatus(signal?: AbortSignal): Promise<ServiceStatusResponse> {
|
||||
return get<ServiceStatusResponse>(ENDPOINTS.configServiceStatus, signal);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
@@ -18,8 +18,8 @@ import type {
|
||||
*
|
||||
* @returns Setup status response with a `completed` boolean.
|
||||
*/
|
||||
export async function getSetupStatus(): Promise<SetupStatusResponse> {
|
||||
return api.get<SetupStatusResponse>(ENDPOINTS.setup);
|
||||
export async function getSetupStatus(signal?: AbortSignal): Promise<SetupStatusResponse> {
|
||||
return api.get<SetupStatusResponse>(ENDPOINTS.setup, signal);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user