HomeDashboard/.venv/lib/python3.12/site-packages/nicegui/static/utils/resources.js
2026-01-03 14:54:18 +01:00

28 lines
904 B
JavaScript

const resourceLoadPromises = {};
export function loadResource(url) {
if (resourceLoadPromises[url]) return resourceLoadPromises[url];
const loadPromise = new Promise((resolve, reject) => {
const dataAttribute = `data-${url.split("/").pop().replace(/\./g, "-")}`;
if (document.querySelector(`[${dataAttribute}]`)) {
resolve();
return;
}
let element;
if (url.endsWith(".css")) {
element = document.createElement("link");
element.setAttribute("rel", "stylesheet");
element.setAttribute("href", url);
} else if (url.endsWith(".js")) {
element = document.createElement("script");
element.setAttribute("src", url);
}
element.setAttribute(dataAttribute, "");
document.head.appendChild(element);
element.onload = resolve;
element.onerror = reject;
});
resourceLoadPromises[url] = loadPromise;
return loadPromise;
}