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

Lines changed: 1 addition & 0 deletions
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

Lines changed: 0 additions & 1 deletion
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

Lines changed: 40 additions & 4 deletions
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

Lines changed: 8 additions & 0 deletions
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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy