/** * Returns a promise that resolves when the document is ready. * @param creator * @returns */ export function documentReadyPromise<T>(creator: () => Promise<T>): Promise<T> { return new Promise((resolve): void => { if (document.readyState === "complete") { resolve(creator()); } else { window.addEventListener("load", () => resolve(creator())); } }); }