in src/common/helper.js [7:49]
export function loadScriptsAsync(scripts) {
return Promise.all(
scripts.map(function (scriptUrl) {
if (typeof scriptUrl === 'string') {
scriptUrl = {
url: scriptUrl,
// TODO Not supported type
type: scriptUrl.match(/\.css$/) ? 'css' : 'js'
};
}
if (promisesCache[scriptUrl.url]) {
return promisesCache[scriptUrl.url];
}
const promise = new Promise((resolve, reject) => {
if (scriptUrl.type === 'js') {
const script = document.createElement('script');
script.src = scriptUrl.url;
script.async = false;
script.onload = function () {
resolve();
};
script.onerror = function () {
reject();
};
document.body.appendChild(script);
} else if (scriptUrl.type === 'css') {
const link = document.createElement('link');
link.rel = 'stylesheet';
link.href = scriptUrl.url;
link.onload = function () {
resolve();
};
link.onerror = function () {
reject();
};
document.body.appendChild(link);
}
});
promisesCache[scriptUrl.url] = promise;
return promise;
})
);
}