21 lines
607 B
JavaScript
21 lines
607 B
JavaScript
async function loadPartial(slot) {
|
|
const response = await fetch(slot.dataset.partial);
|
|
if (!response.ok) {
|
|
throw new Error(`Failed to load partial: ${slot.dataset.partial}`);
|
|
}
|
|
|
|
const html = await response.text();
|
|
slot.insertAdjacentHTML("beforebegin", html);
|
|
slot.remove();
|
|
}
|
|
|
|
async function bootstrapPage() {
|
|
const slots = Array.from(document.querySelectorAll("[data-partial]"));
|
|
await Promise.all(slots.map((slot) => loadPartial(slot)));
|
|
await import("./app.js");
|
|
}
|
|
|
|
bootstrapPage().catch((error) => {
|
|
document.body.innerHTML = `<pre>${error.message || String(error)}</pre>`;
|
|
});
|