diff --git a/rollup/rollup.config.ts b/rollup/rollup.config.ts index 11ae2354..168efffd 100644 --- a/rollup/rollup.config.ts +++ b/rollup/rollup.config.ts @@ -149,6 +149,7 @@ export default (args: Record): rollup.RollupOptions => { VSCODE_VERSION: JSON.stringify(vscodeVersion), VSCODE_REF: JSON.stringify(vscodeRef), VSCODE_COMMIT: JSON.stringify(vscodeCommit), + BUILD_ID: JSON.stringify(`${vscodeRef}-${crypto.randomUUID()}`), 'globalThis.require': 'undefined', preventAssignment: true }), diff --git a/src/services.ts b/src/services.ts index 598ff0ee..beabfbef 100644 --- a/src/services.ts +++ b/src/services.ts @@ -53,15 +53,17 @@ import getBaseServiceOverride from './service-override/base' declare global { interface Window { - monacoVscodeApiInitialized?: boolean + monacoVscodeApiBuildId?: string } } -if (window.monacoVscodeApiInitialized ?? false) { - throw new Error('Another version of monaco-vscode-api has already been loaded.') +if (window.monacoVscodeApiBuildId != null && window.monacoVscodeApiBuildId !== BUILD_ID) { + throw new Error( + `Another version of monaco-vscode-api has already been loaded. Trying to load ${BUILD_ID}, ${window.monacoVscodeApiBuildId} is already loaded` + ) } -window.monacoVscodeApiInitialized = true +window.monacoVscodeApiBuildId = BUILD_ID export async function initialize( overrides: IEditorOverrideServices, diff --git a/src/types.d.ts b/src/types.d.ts index 36d47796..360d9734 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -1,6 +1,7 @@ declare const VSCODE_VERSION: string declare const VSCODE_REF: string declare const VSCODE_COMMIT: string +declare const BUILD_ID: string declare module 'vs/platform/accessibilitySignal/browser/media/*.mp3' { const assets: Record