allow using console interface within project
This commit is contained in:
parent
9a2ad7f2c5
commit
2ecdfcebf0
@ -3,6 +3,8 @@ export class CodeRunner {
|
|||||||
this.console = console;
|
this.console = console;
|
||||||
this.codeStopper = codeStopper;
|
this.codeStopper = codeStopper;
|
||||||
this.isRunning = false;
|
this.isRunning = false;
|
||||||
|
|
||||||
|
window.playgroundConsole = this.console;
|
||||||
}
|
}
|
||||||
|
|
||||||
setCode(code) {
|
setCode(code) {
|
||||||
@ -18,13 +20,13 @@ export class CodeRunner {
|
|||||||
|
|
||||||
// Use RNG to prevent caching
|
// Use RNG to prevent caching
|
||||||
const encodedText = encodeURIComponent(
|
const encodedText = encodeURIComponent(
|
||||||
this.code + `/*(tph): ${Math.random()}*/`,
|
`let console=playgroundConsole;${this.code}/*(tph): ${Math.random()}*/`,
|
||||||
);
|
);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await import(`data:text/javascript;charset=utf-8,${encodedText}`);
|
await import(`data:text/javascript;charset=utf-8,${encodedText}`);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
this.console.log(error);
|
this.console.error(error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,6 +4,29 @@ export class PlaygroundConsole {
|
|||||||
}
|
}
|
||||||
|
|
||||||
log(text) {
|
log(text) {
|
||||||
this.elem.textContent += `\n${text}\n`;
|
const el = document.createElement("span");
|
||||||
|
el.textContent = `\n${text}\n`;
|
||||||
|
this.elem.appendChild(el);
|
||||||
|
}
|
||||||
|
|
||||||
|
error(text) {
|
||||||
|
const el = document.createElement("span");
|
||||||
|
el.className = "error";
|
||||||
|
el.textContent = `\n${text}\n`;
|
||||||
|
this.elem.appendChild(el);
|
||||||
|
}
|
||||||
|
|
||||||
|
debug(text) {
|
||||||
|
const el = document.createElement("span");
|
||||||
|
el.className = "debug";
|
||||||
|
el.textContent = `\n${text}\n`;
|
||||||
|
this.elem.appendChild(el);
|
||||||
|
}
|
||||||
|
|
||||||
|
info(text) {
|
||||||
|
const el = document.createElement("span");
|
||||||
|
el.className = "info";
|
||||||
|
el.textContent = `\n${text}\n`;
|
||||||
|
this.elem.appendChild(el);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -121,6 +121,15 @@ div#buttons button {
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#console .error {
|
||||||
|
color: #D32F2F;
|
||||||
|
}
|
||||||
|
|
||||||
|
#console .info, #console .debug {
|
||||||
|
color: #BDBDBD;
|
||||||
|
}
|
||||||
|
|
||||||
#console input {
|
#console input {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user