<script lang="ts">
import {
TextEditor,
createModel,
setupMonaco,
cleanupMonaco,
type ContentChangeEvent
} from '@svuick/monaco';
import { onMount } from 'svelte';
let path = '/main.ts';
const files: Record<string, string> = {
'/test.ts': 'export function test() {\n\tconsole.log("test");\n}',
'/main.ts': 'import { test } from "./test";\n\ntest();',
'/file.yaml': 'this:\n\tis: yaml!',
'/file.json': '{\n\t"json": "file"\n}'
};
function loadModels() {
for (const file in files) {
createModel(file, files[file]);
}
}
function handleContentChange(e: ContentChangeEvent) {
const { path, content } = e.detail;
files[path] = content;
}
onMount(() => {
setupMonaco({
onReady: loadModels
});
return () => {
cleanupMonaco();
};