13 lines
320 B
TypeScript
13 lines
320 B
TypeScript
export function registerAbortCleanup(
|
|
signal: AbortSignal | undefined,
|
|
cleanup: () => void,
|
|
) {
|
|
if (!signal) return () => {};
|
|
if (signal.aborted) {
|
|
cleanup();
|
|
return () => {};
|
|
}
|
|
signal.addEventListener("abort", cleanup, { once: true });
|
|
return () => signal.removeEventListener("abort", cleanup);
|
|
}
|