refactor: split feishu helpers and tests

This commit is contained in:
Peter Steinberger
2026-03-24 17:12:25 -07:00
parent 5cdb50abe6
commit f6205de73a
8 changed files with 470 additions and 423 deletions

View File

@@ -60,3 +60,27 @@ export async function raceWithTimeoutAndAbort<T>(
}
}
}
export function waitForAbortableDelay(
delayMs: number,
abortSignal?: AbortSignal,
): Promise<boolean> {
if (abortSignal?.aborted) {
return Promise.resolve(false);
}
return new Promise((resolve) => {
const handleAbort = () => {
clearTimeout(timer);
resolve(false);
};
const timer = setTimeout(() => {
abortSignal?.removeEventListener("abort", handleAbort);
resolve(true);
}, delayMs);
timer.unref?.();
abortSignal?.addEventListener("abort", handleAbort, { once: true });
});
}