pixel/js/module-loader.js
2026-06-02 17:19:36 +09:00

22 lines
619 B
JavaScript

(function () {
'use strict';
const root = window.PixelIslandModules ||= {};
const pending = new Map();
function loadScript(src) {
if (pending.has(src)) return pending.get(src);
const promise = new Promise((resolve, reject) => {
const script = document.createElement('script');
script.src = src;
script.defer = true;
script.onload = () => resolve(script);
script.onerror = () => reject(new Error(`Could not load ${src}`));
document.head.appendChild(script);
});
pending.set(src, promise);
return promise;
}
root.ModuleLoader = { loadScript };
})();