import TYPES from "./types.js"; const waitForIt = []; for (const [TYPE] of TYPES) { const selectors = [`script[type="${TYPE}"]`, `${TYPE}-script`]; for (const element of document.querySelectorAll(selectors.join(","))) { const { promise, resolve } = Promise.withResolvers(); waitForIt.push(promise); element.addEventListener(`${TYPE}:done`, resolve, { once: true }); } } // wait for all the things then cleanup Promise.all(waitForIt).then(() => { dispatchEvent(new Event("py:all-done")); });