import build from "https://esm.sh/build";
const ret = { url: "https://esm.sh/~6dbcb285211a77b562ecd1621320f7ddc11a4c17" };
const {
autocompletion,
basicSetup,
createDefaultMapFromCDN,
createSystem,
createVirtualTypeScriptEnvironment,
ModuleDetectionKind,
EditorView,
javascript,
tsAutocomplete,
tsHover,
tsLinter,
tsSync,
keymap,
defaultKeymap,
indentWithTab,
unifiedMergeView,
goToNextChunk,
} = await import(ret.url + "?bundle-deps");
import ts from "https://esm.sh/typescript@5.4.5";
(window as any).goToNextChunk = goToNextChunk;
(window as any).makeCodeMirror = async (parent, doc, old) => {
const compilerOpts = {
target: ts.ScriptTarget.ESNext,
module: ts.ModuleKind.ESNext,
jsx: ts.JsxEmit.React,
lib: ["esnext", "dom"],
moduleDetection: ModuleDetectionKind.Force,
strict: true,
allowJs: true,
};
const fsMap = await createDefaultMapFromCDN(
compilerOpts,
"5.2.2",
true,
ts,
);
const system = createSystem(fsMap);
const env = createVirtualTypeScriptEnvironment(system, [], ts, compilerOpts);
const path = "index.ts";
const editor = new EditorView({
doc: doc || "",
extensions: [
basicSetup,
javascript({
typescript: true,
jsx: true,
}),
tsSync({ env, path }),
tsLinter({ env, path }),
autocompletion({
override: [tsAutocomplete({ env, path })],
}),
tsHover({
env,