export function domReady(fn?: () => Promise | unknown, doc?: Document): Promise { return new Promise((resolve) => { const resolver = async () => { if (fn) { await fn() } resolve() } const leDoc = doc || document if (leDoc.readyState === 'complete' || leDoc.readyState === 'interactive') { setTimeout(resolver, 0) } else { leDoc.addEventListener('DOMContentLoaded', resolver) } }) }