Refactor code store to contain non-transpiled TypeScript

This commit is contained in:
Kai Vogelgesang 2022-12-29 12:59:26 +01:00
parent cac24e64b1
commit 9eac3510fa
Signed by: kai
GPG Key ID: 3FC8578CC818A9EB
3 changed files with 9 additions and 13 deletions

View File

@ -3,18 +3,12 @@
import { onMount } from "svelte";
import editorWorker from "monaco-editor/esm/vs/editor/editor.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 { code } from "./code";
import tsOptions from "../eval/tsOptions";
let divEl: HTMLDivElement = null;
let editor: monaco.editor.IStandaloneCodeEditor;
let value = defaultCode;
$: $code = TS.transpile(value, tsOptions);
onMount(async () => {
// @ts-ignore
self.MonacoEnvironment = {
@ -27,7 +21,7 @@
};
editor = monaco.editor.create(divEl, {
value: value,
value: $code,
language: "typescript",
});
@ -36,7 +30,7 @@
defaultEnv
);
editor.onKeyUp((_e) => (value = editor.getValue()));
editor.onKeyUp((_e) => ($code = editor.getValue()));
return () => {
lib.dispose();

View File

@ -1,7 +1,5 @@
import { writable } from "svelte/store";
import defaultCode from "./defaultCode.ts?raw";
import TS from "typescript";
import tsOptions from "../eval/tsOptions";
/** the transpiled JavaScript code */
export const code = writable(TS.transpile(defaultCode, tsOptions));
/** the TypeScript code as seen in the editor */
export const code = writable(defaultCode);

View File

@ -4,6 +4,10 @@
import { code } from "../editor/code";
import { dmxData } from "../dmx/store";
import { lib } from "./lib";
import TS from "typescript";
import tsOptions from "./tsOptions";
$: transpiled = TS.transpile($code, tsOptions);
let startTime: number;
let payload = new Uint8Array(512);
@ -20,7 +24,7 @@
payload = new Uint8Array(512);
const t = (performance.now() - startTime) / 1000;
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);
} catch (err) {
result = JSON.stringify(err);