mirror of
https://github.com/microsoft/monaco-editor.git
synced 2025-12-22 12:45:39 +01:00
Fixes monaco-editor nightly build (needed for verification)
This commit is contained in:
parent
6c7087b94e
commit
b0330f8eed
4 changed files with 87 additions and 8 deletions
14
package-lock.json
generated
14
package-lock.json
generated
|
|
@ -25,7 +25,7 @@
|
||||||
"jsdom": "^19.0.0",
|
"jsdom": "^19.0.0",
|
||||||
"jsonc-parser": "^3.0.0",
|
"jsonc-parser": "^3.0.0",
|
||||||
"mocha": "^9.2.0",
|
"mocha": "^9.2.0",
|
||||||
"monaco-editor-core": "0.45.0-rc",
|
"monaco-editor-core": "0.46.0-dev-20240109",
|
||||||
"parcel": "^2.7.0",
|
"parcel": "^2.7.0",
|
||||||
"pin-github-action": "^1.8.0",
|
"pin-github-action": "^1.8.0",
|
||||||
"playwright": "^1.32.2",
|
"playwright": "^1.32.2",
|
||||||
|
|
@ -5337,9 +5337,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/monaco-editor-core": {
|
"node_modules/monaco-editor-core": {
|
||||||
"version": "0.45.0-rc",
|
"version": "0.46.0-dev-20240109",
|
||||||
"resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.45.0-rc.tgz",
|
"resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.46.0-dev-20240109.tgz",
|
||||||
"integrity": "sha512-iNh84qarOK8KhJNaxitm+07m9sCCoF4OxQXDOru1pOSPNFGpMEOV/35agYm9ab9RAm2CPGGHz27eJUY1FY0iKg==",
|
"integrity": "sha512-HK4YgFFpBpZ0zGbNbN/Julb8AXaB8Z7wuy4bgezj4MEjMYnTB4zn/CQ+ogCy+ZblVB6pD1X4vXN2mfiTqDeOMw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/mri": {
|
"node_modules/mri": {
|
||||||
|
|
@ -11069,9 +11069,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"monaco-editor-core": {
|
"monaco-editor-core": {
|
||||||
"version": "0.45.0-rc",
|
"version": "0.46.0-dev-20240109",
|
||||||
"resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.45.0-rc.tgz",
|
"resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.46.0-dev-20240109.tgz",
|
||||||
"integrity": "sha512-iNh84qarOK8KhJNaxitm+07m9sCCoF4OxQXDOru1pOSPNFGpMEOV/35agYm9ab9RAm2CPGGHz27eJUY1FY0iKg==",
|
"integrity": "sha512-HK4YgFFpBpZ0zGbNbN/Julb8AXaB8Z7wuy4bgezj4MEjMYnTB4zn/CQ+ogCy+ZblVB6pD1X4vXN2mfiTqDeOMw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"mri": {
|
"mri": {
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@
|
||||||
"jsdom": "^19.0.0",
|
"jsdom": "^19.0.0",
|
||||||
"jsonc-parser": "^3.0.0",
|
"jsonc-parser": "^3.0.0",
|
||||||
"mocha": "^9.2.0",
|
"mocha": "^9.2.0",
|
||||||
"monaco-editor-core": "0.45.0-rc",
|
"monaco-editor-core": "0.46.0-dev-20240109",
|
||||||
"parcel": "^2.7.0",
|
"parcel": "^2.7.0",
|
||||||
"pin-github-action": "^1.8.0",
|
"pin-github-action": "^1.8.0",
|
||||||
"playwright": "^1.32.2",
|
"playwright": "^1.32.2",
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,10 @@ global.UIEvent = tmp.window.UIEvent;
|
||||||
global.window = {
|
global.window = {
|
||||||
location: {},
|
location: {},
|
||||||
navigator: tmp.window.navigator,
|
navigator: tmp.window.navigator,
|
||||||
|
document: {
|
||||||
|
body: tmp.window.document.body,
|
||||||
|
addEventListener: (...args) => tmp.window.document.addEventListener(...args)
|
||||||
|
},
|
||||||
matchMedia: function () {
|
matchMedia: function () {
|
||||||
return {
|
return {
|
||||||
matches: false,
|
matches: false,
|
||||||
|
|
|
||||||
75
website/src/runner/debug.ts
Normal file
75
website/src/runner/debug.ts
Normal file
|
|
@ -0,0 +1,75 @@
|
||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
import { loadMonaco } from "../monaco-loader";
|
||||||
|
import { IPreviewState } from "../shared";
|
||||||
|
import { LzmaCompressor } from "../website/utils/lzmaCompressor";
|
||||||
|
import "./style.scss";
|
||||||
|
|
||||||
|
let monacoPromise: Promise<any> | undefined = undefined;
|
||||||
|
|
||||||
|
async function initialize(state: IPreviewState) {
|
||||||
|
if (monacoPromise) {
|
||||||
|
throw new Error("already initialized");
|
||||||
|
}
|
||||||
|
|
||||||
|
const loadingContainerDiv = document.createElement("div");
|
||||||
|
loadingContainerDiv.className = "loader-container";
|
||||||
|
const loadingDiv = document.createElement("div");
|
||||||
|
loadingDiv.className = "loader";
|
||||||
|
loadingContainerDiv.appendChild(loadingDiv);
|
||||||
|
document.body.appendChild(loadingContainerDiv);
|
||||||
|
|
||||||
|
monacoPromise = loadMonaco(state.monacoSetup);
|
||||||
|
await monacoPromise;
|
||||||
|
|
||||||
|
loadingContainerDiv.remove();
|
||||||
|
|
||||||
|
const style = document.createElement("style");
|
||||||
|
style.id = "custom-style";
|
||||||
|
style.innerHTML = state.css; // CodeQL [SM03712] This is safe because the runner runs in an isolated iframe. This feature is essential to the functionality of the playground. // CodeQL [SM02688] This is safe because the runner runs in an isolated iframe. This feature is essential to the functionality of the playground.
|
||||||
|
document.body.appendChild(style);
|
||||||
|
|
||||||
|
document.body.innerHTML += state.html;
|
||||||
|
|
||||||
|
const js = state.js;
|
||||||
|
|
||||||
|
try {
|
||||||
|
eval(js); // CodeQL [SM01632] This is safe because the runner runs in an isolated iframe. This feature is essential to the functionality of the playground. // CodeQL [SM02688] This is safe because the runner runs in an isolated iframe. This feature is essential to the functionality of the playground.
|
||||||
|
} catch (err) {
|
||||||
|
const pre = document.createElement("pre");
|
||||||
|
pre.appendChild(
|
||||||
|
document.createTextNode(`${err}: ${(err as any).state}`)
|
||||||
|
);
|
||||||
|
document.body.insertBefore(pre, document.body.firstChild);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
const compressor = new LzmaCompressor<IPreviewState>();
|
||||||
|
const stateStr = new URLSearchParams(window.location.search).get("state");
|
||||||
|
const state = compressor.decodeData<IPreviewState>(stateStr!);
|
||||||
|
|
||||||
|
const previousStateStr = localStorage.getItem("stateStr");
|
||||||
|
if (previousStateStr === stateStr) {
|
||||||
|
initialize(state);
|
||||||
|
} else {
|
||||||
|
// If it does not, show the load button
|
||||||
|
const loadButton = document.createElement("button");
|
||||||
|
loadButton.style.position = "absolute";
|
||||||
|
loadButton.style.top = "50%";
|
||||||
|
loadButton.style.left = "50%";
|
||||||
|
loadButton.style.transform = "translate(-50%, -50%)";
|
||||||
|
loadButton.innerText = "Load";
|
||||||
|
loadButton.style.padding = "10px 20px";
|
||||||
|
loadButton.onclick = () => {
|
||||||
|
loadButton.remove();
|
||||||
|
localStorage.setItem("stateStr", stateStr!);
|
||||||
|
initialize(state);
|
||||||
|
};
|
||||||
|
document.body.appendChild(loadButton);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
main();
|
||||||
Loading…
Add table
Add a link
Reference in a new issue