@roots/bud-client
Version:
Client scripts for @roots/bud
21 lines (18 loc) • 444 B
text/typescript
/**
* Calls once document has loaded.
*
* @remarks
* Callback function may be async or sync
*
* @param onReady - callback function
* @returns void
*/
interface domReady {
(onReady: () => (() => Promise<unknown>) | unknown): void
}
const domReady: domReady = onReady => {
window.requestAnimationFrame(async function check() {
document.body ? await onReady() : window.requestAnimationFrame(check)
})
}
export default domReady