Skip to content
Snippets Groups Projects
Commit 577055c3 authored by Marcus Eibrink-Lunzenauer's avatar Marcus Eibrink-Lunzenauer Committed by Jan-Hendrik Willms
Browse files

Re-throw error when failing to load a chunk.

Closes #4287

Merge request studip/studip!3103
parent 00c397a9
No related branches found
No related tags found
No related merge requests found
......@@ -8,13 +8,19 @@ export const loadScript = function (script_name) {
});
};
export const loadChunk = (function () {
let mathjax_promise = null;
return function (chunk) {
/** This function dynamically loads JS features organized in chunks.
*
* @param {string} chunk The name of the chunk to load.
* @param {{ silent: boolean }} options Options for loading the chunk.
* Pass `{ silent: true }` to supress
* error messages.
* @return {Promise}
*/
export const loadChunk = function (chunk, { silent = false } = {}) {
let promise = null;
switch (chunk) {
case 'code-highlight':
promise = import(
/* webpackChunkName: "code-highlight" */
......@@ -57,21 +63,18 @@ export const loadChunk = (function () {
case 'mathjax':
if (mathjax_promise === null) {
mathjax_promise = STUDIP.loadScript(
'javascripts/mathjax/MathJax.js?config=TeX-AMS_HTML,default'
).then(() => {
mathjax_promise = STUDIP.loadScript('javascripts/mathjax/MathJax.js?config=TeX-AMS_HTML,default')
.then(() => {
(function (origPrint) {
window.print = function () {
window.MathJax.Hub.Queue(
['Delay', window.MathJax.Callback, 700],
origPrint
);
window.MathJax.Hub.Queue(['Delay', window.MathJax.Callback, 700], origPrint);
};
})(window.print);
return window.MathJax;
}).catch(() => {
console.log('Could not load mathjax')
})
.catch(() => {
throw new Error('Could not load mathjax');
});
}
promise = mathjax_promise;
......@@ -96,7 +99,9 @@ export const loadChunk = (function () {
}
return promise.catch((error) => {
if (!silent) {
console.error(`Could not load chunk ${chunk}`, error);
}
throw error;
});
};
}());
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment