Refactor code store to contain non-transpiled TypeScript
This commit is contained in:
parent
cac24e64b1
commit
9eac3510fa
@ -3,18 +3,12 @@
|
|||||||
import { onMount } from "svelte";
|
import { onMount } from "svelte";
|
||||||
import editorWorker from "monaco-editor/esm/vs/editor/editor.worker?worker";
|
import editorWorker from "monaco-editor/esm/vs/editor/editor.worker?worker";
|
||||||
import tsWorker from "monaco-editor/esm/vs/language/typescript/ts.worker?worker";
|
import tsWorker from "monaco-editor/esm/vs/language/typescript/ts.worker?worker";
|
||||||
import TS from "typescript";
|
|
||||||
import defaultCode from "./defaultCode.ts?raw";
|
|
||||||
import defaultEnv from "./defaultEnv.d.ts?raw";
|
import defaultEnv from "./defaultEnv.d.ts?raw";
|
||||||
import { code } from "./code";
|
import { code } from "./code";
|
||||||
import tsOptions from "../eval/tsOptions";
|
|
||||||
|
|
||||||
let divEl: HTMLDivElement = null;
|
let divEl: HTMLDivElement = null;
|
||||||
let editor: monaco.editor.IStandaloneCodeEditor;
|
let editor: monaco.editor.IStandaloneCodeEditor;
|
||||||
|
|
||||||
let value = defaultCode;
|
|
||||||
$: $code = TS.transpile(value, tsOptions);
|
|
||||||
|
|
||||||
onMount(async () => {
|
onMount(async () => {
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
self.MonacoEnvironment = {
|
self.MonacoEnvironment = {
|
||||||
@ -27,7 +21,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
editor = monaco.editor.create(divEl, {
|
editor = monaco.editor.create(divEl, {
|
||||||
value: value,
|
value: $code,
|
||||||
language: "typescript",
|
language: "typescript",
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -36,7 +30,7 @@
|
|||||||
defaultEnv
|
defaultEnv
|
||||||
);
|
);
|
||||||
|
|
||||||
editor.onKeyUp((_e) => (value = editor.getValue()));
|
editor.onKeyUp((_e) => ($code = editor.getValue()));
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
lib.dispose();
|
lib.dispose();
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
import { writable } from "svelte/store";
|
import { writable } from "svelte/store";
|
||||||
import defaultCode from "./defaultCode.ts?raw";
|
import defaultCode from "./defaultCode.ts?raw";
|
||||||
import TS from "typescript";
|
|
||||||
import tsOptions from "../eval/tsOptions";
|
|
||||||
|
|
||||||
/** the transpiled JavaScript code */
|
/** the TypeScript code as seen in the editor */
|
||||||
export const code = writable(TS.transpile(defaultCode, tsOptions));
|
export const code = writable(defaultCode);
|
@ -4,6 +4,10 @@
|
|||||||
import { code } from "../editor/code";
|
import { code } from "../editor/code";
|
||||||
import { dmxData } from "../dmx/store";
|
import { dmxData } from "../dmx/store";
|
||||||
import { lib } from "./lib";
|
import { lib } from "./lib";
|
||||||
|
import TS from "typescript";
|
||||||
|
import tsOptions from "./tsOptions";
|
||||||
|
|
||||||
|
$: transpiled = TS.transpile($code, tsOptions);
|
||||||
|
|
||||||
let startTime: number;
|
let startTime: number;
|
||||||
let payload = new Uint8Array(512);
|
let payload = new Uint8Array(512);
|
||||||
@ -20,7 +24,7 @@
|
|||||||
payload = new Uint8Array(512);
|
payload = new Uint8Array(512);
|
||||||
const t = (performance.now() - startTime) / 1000;
|
const t = (performance.now() - startTime) / 1000;
|
||||||
try {
|
try {
|
||||||
let ret = Function("ctx", "t", "lib", $code).call({}, ctx, t, lib);
|
let ret = Function("ctx", "t", "lib", transpiled).call({}, ctx, t, lib);
|
||||||
result = JSON.stringify(ret);
|
result = JSON.stringify(ret);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
result = JSON.stringify(err);
|
result = JSON.stringify(err);
|
||||||
|
Loading…
Reference in New Issue
Block a user