(ms: number, signal: AbortSignal)
| 7 | * a `setTimeout` that ignores the abort signal. |
| 8 | */ |
| 9 | export function sleepUntilAborted(ms: number, signal: AbortSignal): Promise<void> { |
| 10 | if (signal.aborted) return Promise.resolve() |
| 11 | return new Promise((resolve) => { |
| 12 | const onAbort = () => { |
| 13 | clearTimeout(timeoutId) |
| 14 | resolve() |
| 15 | } |
| 16 | const timeoutId = setTimeout(() => { |
| 17 | signal.removeEventListener('abort', onAbort) |
| 18 | resolve() |
| 19 | }, ms) |
| 20 | signal.addEventListener('abort', onAbort, { once: true }) |
| 21 | }) |
| 22 | } |
| 23 | |
| 24 | export function normalizePrefix(raw: string | undefined): string { |
| 25 | if (!raw) return '' |
no test coverage detected