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 { 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();

View File

@ -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);

View File

@ -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);