| 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")); | |
| }); | |