ModelHandle/source/engine/io/externallibs.js
2022-02-06 16:29:03 +01:00

43 lines
1.0 KiB
JavaScript

let externalLibLocation = null;
let loadedExternalLibs = new Set ();
export function SetExternalLibLocation (newExternalLibLocation)
{
externalLibLocation = newExternalLibLocation;
}
export function GetExternalLibPath (libName)
{
if (externalLibLocation === null) {
return null;
}
return externalLibLocation + '/' + libName;
}
export function LoadExternalLibrary (libName)
{
return new Promise ((resolve, reject) => {
if (externalLibLocation === null) {
reject ();
return;
}
if (loadedExternalLibs.has (libName)) {
resolve ();
return;
}
let scriptElement = document.createElement ('script');
scriptElement.type = 'text/javascript';
scriptElement.src = GetExternalLibPath (libName);
scriptElement.onload = () => {
loadedExternalLibs.add (libName);
resolve ();
};
scriptElement.onerror = () => {
reject ();
};
document.head.appendChild (scriptElement);
});
}