MISC: Support JSX, TS, TSX script files (#1216)

This commit is contained in:
catloversg
2024-07-15 04:47:10 +07:00
committed by GitHub
parent 783120c886
commit 864613c616
38 changed files with 895 additions and 201 deletions
+24 -1
View File
@@ -1,6 +1,7 @@
import { GetServer } from "../../Server/AllServers";
import { editor, Uri } from "monaco-editor";
import { OpenScript } from "./OpenScript";
import { getFileType, FileType } from "../../utils/ScriptTransformer";
function getServerCode(scripts: OpenScript[], index: number): string | null {
const openScript = scripts[index];
@@ -26,7 +27,29 @@ function makeModel(hostname: string, filename: string, code: string) {
scheme: "file",
path: `${hostname}/${filename}`,
});
const language = filename.endsWith(".txt") ? "plaintext" : filename.endsWith(".json") ? "json" : "javascript";
let language;
const fileType = getFileType(filename);
switch (fileType) {
case FileType.PLAINTEXT:
language = "plaintext";
break;
case FileType.JSON:
language = "json";
break;
case FileType.JS:
case FileType.JSX:
language = "javascript";
break;
case FileType.TS:
case FileType.TSX:
language = "typescript";
break;
case FileType.NS1:
language = "javascript";
break;
default:
throw new Error(`Invalid file type: ${fileType}. Filename: ${filename}.`);
}
//if somehow a model already exist return it
return editor.getModel(uri) ?? editor.createModel(code, language, uri);
}