Skip to content

Commit 985ff60

Browse files
committed
chore: fix site
1 parent d0e9f76 commit 985ff60

File tree

4 files changed

+49
-5
lines changed

4 files changed

+49
-5
lines changed

explorer-v2/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
"@sveltejs/adapter-static": "^3.0.2",
2727
"@sveltejs/kit": "^2.5.17",
2828
"@sveltejs/vite-plugin-svelte": "^3.1.1",
29+
"monaco-editor": "^0.50.0",
2930
"prettier": "^3.3.2",
3031
"prettier-plugin-svelte": "^3.2.4",
3132
"string-replace-loader": "^3.1.0",

explorer-v2/src/app.html

-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
<meta name="viewport" content="width=device-width, initial-scale=1" />
77

88
%sveltekit.head%
9-
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.50.0/min/vs/loader.min.js"></script>
109
</head>
1110
<body>
1211
<div id="svelte">%sveltekit.body%</div>

explorer-v2/src/lib/scripts/monaco-loader.js

+40-4
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,59 @@ async function setupMonaco() {
1717
}
1818
}
1919

20-
function appendMonacoEditorScript() {
21-
return new Promise((resolve) => {
22-
const script = document.createElement('script');
23-
script.src = 'https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.26.1/min/vs/loader.min.js';
20+
async function appendMonacoEditorScript() {
21+
let error = new Error();
22+
const urlList = [
23+
'https://cdn.jsdelivr.net/npm/monaco-editor/dev/vs/loader.min.js',
24+
'https://unpkg.com/monaco-editor@latest/min/vs/loader.js'
25+
];
26+
27+
/* global MONACO_EDITOR_VERSION -- Define monaco-editor version */
28+
if (typeof MONACO_EDITOR_VERSION !== 'undefined') {
29+
urlList.unshift(
30+
`https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/${MONACO_EDITOR_VERSION}/min/vs/loader.min.js`,
31+
`https://cdn.jsdelivr.net/npm/monaco-editor@${MONACO_EDITOR_VERSION}/dev/vs/loader.min.js`,
32+
`https://unpkg.com/monaco-editor/${MONACO_EDITOR_VERSION}/min/vs/loader.min.js`
33+
);
34+
}
35+
for (const url of urlList) {
36+
try {
37+
return await appendScript(url);
38+
} catch (e) {
39+
// eslint-disable-next-line no-console -- OK
40+
console.warn(`Failed to retrieve resource from ${url}`);
41+
error = e;
42+
}
43+
}
44+
throw error;
45+
}
46+
47+
/** Appends a script tag. */
48+
function appendScript(src) {
49+
const script = document.createElement('script');
50+
51+
return new Promise((resolve, reject) => {
52+
script.src = src;
2453
script.onload = () => {
2554
script.onload = null;
2655

2756
watch();
2857

2958
function watch() {
59+
// @ts-expect-error -- global Monaco's require
3060
if (window.require) {
3161
resolve(script);
62+
3263
return;
3364
}
65+
3466
setTimeout(watch, 200);
3567
}
3668
};
69+
script.onerror = (e) => {
70+
reject(e);
71+
document.head.removeChild(script);
72+
};
3773
document.head.append(script);
3874
});
3975
}

explorer-v2/vite.config.js

+8
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
import { sveltekit } from '@sveltejs/kit/vite';
22
import { resolve } from 'path';
3+
import { createRequire } from 'module';
4+
5+
const { version: MONACO_EDITOR_VERSION } = createRequire(import.meta.url)(
6+
'monaco-editor/package.json'
7+
);
38

49
/** @type {import('vite').UserConfig} */
510
const config = {
@@ -20,6 +25,9 @@ const config = {
2025
'svelte-eslint-parser': resolve('./build-system/shim/svelte-eslint-parser.js'),
2126
'svelte/compiler': resolve('./build-system/shim/svelte/compiler.js')
2227
}
28+
},
29+
define: {
30+
MONACO_EDITOR_VERSION: JSON.stringify(MONACO_EDITOR_VERSION)
2331
}
2432
};
2533

0 commit comments

Comments
 (0)