export async function sleep(ms: number, signal?: AbortSignal): Promise { if (signal?.aborted) return; await new Promise((resolve) => { const t = setTimeout(resolve, ms); signal?.addEventListener( "abort", () => { clearTimeout(t); resolve(); }, { once: true }, ); }); }