rvx
Version:
A signal based rendering library
18 lines (15 loc) • 516 B
text/typescript
import { teardown } from "../core/lifecycle.js";
/**
* Create a new abort controller that aborts when the current lifecycle is disposed.
*/
export function useAbortController(reason?: unknown): AbortController {
const controller = new AbortController();
teardown(() => controller.abort(reason));
return controller;
}
/**
* Get an abort signal that aborts when the current lifecycle is disposed.
*/
export function useAbortSignal(reason?: unknown): AbortSignal {
return useAbortController(reason).signal;
}