Skip to content

Commit 8e52d45

Browse files
committed
refactor: cleanup initEditor, rename config
1 parent b062887 commit 8e52d45

File tree

2 files changed

+22
-22
lines changed

2 files changed

+22
-22
lines changed

src/editor/init-editor.ts

+22-19
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import * as monaco from 'monaco-editor';
1+
import {editor, languages, KeyCode, KeyMod, Uri} from 'monaco-editor';
22
import {decode, encode} from './snippet-encoder';
3-
import './monaco-config';
3+
import './worker-config';
44

55
import googleMapsDTSSource from '../../node_modules/@types/google.maps/index.d.ts?raw';
66
import markerExampleSource from '../../examples/00.default.ts?raw';
@@ -12,14 +12,17 @@ const modules: Record<string, string> = {
1212

1313
export async function initEditor(
1414
runCallback: (jsCode: string) => void
15-
): Promise<monaco.editor.IStandaloneCodeEditor> {
16-
let {typescriptDefaults} = monaco.languages.typescript;
15+
): Promise<editor.IStandaloneCodeEditor> {
16+
const {typescript} = languages;
17+
const {typescriptDefaults, ScriptTarget, ModuleKind, ModuleResolutionKind} =
18+
typescript;
19+
1720
typescriptDefaults.setEagerModelSync(true);
1821
typescriptDefaults.setCompilerOptions({
19-
target: monaco.languages.typescript.ScriptTarget.ES2020,
22+
target: ScriptTarget.ES2020,
2023
allowNonTsExtensions: true,
21-
moduleResolution: monaco.languages.typescript.ModuleResolutionKind.NodeJs,
22-
module: monaco.languages.typescript.ModuleKind.CommonJS,
24+
moduleResolution: ModuleResolutionKind.NodeJs,
25+
module: ModuleKind.CommonJS,
2326
typeRoots: ['node_modules/@types']
2427
});
2528

@@ -35,7 +38,7 @@ export async function initEditor(
3538
}
3639

3740
const container = document.querySelector('#editor') as HTMLElement;
38-
const fileUri = monaco.Uri.parse('file:///main.ts');
41+
const fileUri = Uri.parse('file:///main.ts');
3942

4043
let source = markerExampleSource;
4144
if (location.hash) {
@@ -58,20 +61,20 @@ export async function initEditor(
5861
source = decoded.code;
5962
}
6063

61-
const model = monaco.editor.createModel(source, 'typescript', fileUri);
62-
const editor = monaco.editor.create(container, {
64+
const model = editor.createModel(source, 'typescript', fileUri);
65+
const editorInstance = editor.create(container, {
6366
theme: 'vs-dark',
6467
minimap: {enabled: false},
6568
fontSize: import.meta.env.PROD ? 20 : 12
6669
});
67-
editor.setModel(model);
70+
editorInstance.setModel(model);
6871

69-
editor.addAction({
72+
editorInstance.addAction({
7073
id: 'compile-and-run',
7174
label: 'Compile and run',
72-
keybindings: [monaco.KeyMod.CtrlCmd | monaco.KeyCode.Enter],
75+
keybindings: [KeyMod.CtrlCmd | KeyCode.Enter],
7376
async run(editor) {
74-
const worker = await monaco.languages.typescript.getTypeScriptWorker();
77+
const worker = await typescript.getTypeScriptWorker();
7578
const proxy = await worker(model.uri);
7679

7780
const {outputFiles} = await proxy.getEmitOutput(model.uri.toString());
@@ -83,18 +86,18 @@ export async function initEditor(
8386

8487
const runButton = document.querySelector('#btn-compile-and-run')!;
8588
runButton.addEventListener('click', () => {
86-
editor
89+
editorInstance
8790
.getAction('compile-and-run')
8891
.run()
8992
.then(() => {
9093
console.log('compie and run completed.');
9194
});
9295
});
9396

94-
editor.addAction({
97+
editorInstance.addAction({
9598
id: 'save-to-url',
9699
label: 'Save to URL',
97-
keybindings: [monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyS],
100+
keybindings: [KeyMod.CtrlCmd | KeyCode.KeyS],
98101
run(editor) {
99102
const tsCode = editor.getModel()?.getValue();
100103

@@ -105,7 +108,7 @@ export async function initEditor(
105108
}
106109
});
107110

108-
editor.focus();
111+
editorInstance.focus();
109112

110-
return editor;
113+
return editorInstance;
111114
}

src/editor/monaco-config.ts src/editor/worker-config.ts

-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
import * as monaco from 'monaco-editor';
2-
import './monaco-config';
3-
41
import editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker';
52
import jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker';
63
import cssWorker from 'monaco-editor/esm/vs/language/css/css.worker?worker';

0 commit comments

Comments
 (0)