diff --git a/frontend/src/lib/extensions/workers/extensionHost.ts b/frontend/src/lib/extensions/workers/extensionHost.ts index def1398..0955050 100644 --- a/frontend/src/lib/extensions/workers/extensionHost.ts +++ b/frontend/src/lib/extensions/workers/extensionHost.ts @@ -65,20 +65,27 @@ onmessage = async (ev: MessageEvent) => { ); await kv.wait(); - // Transpile TS into JS - const out = ts.transpileModule(cmd.source, { - compilerOptions: { module: ts.ModuleKind.CommonJS }, - }); + try { + // Transpile TS into JS + const out = ts.transpileModule(cmd.source, { + compilerOptions: { module: ts.ModuleKind.ES2022 }, + }); - // Replace console.* methods with something that logs to UI - console.log = log('info'); - console.info = log('info'); - console.warn = log('warn'); - console.error = log('error'); + // Replace console.* methods with something that logs to UI + console.log = log('info'); + console.info = log('info'); + console.warn = log('warn'); + console.error = log('error'); - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - extFn = ExtensionFunction.constructor('kv', out.outputText); - setStatus(ExtensionStatus.Ready); + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + extFn = ExtensionFunction.constructor('kv', out.outputText); + setStatus(ExtensionStatus.Ready); + } catch (error: unknown) { + sendMessage({ + kind: 'error', + error, + }); + } start(); break; diff --git a/frontend/src/ui/pages/Extensions.tsx b/frontend/src/ui/pages/Extensions.tsx index 9bec3fc..c3d2bb8 100644 --- a/frontend/src/ui/pages/Extensions.tsx +++ b/frontend/src/ui/pages/Extensions.tsx @@ -354,7 +354,7 @@ const setupLibrary = (monaco: Monaco, source: string, url: string) => { return; } - monaco.languages.typescript.javascriptDefaults.addExtraLib(source, url); + monaco.languages.typescript.typescriptDefaults.addExtraLib(source, url); monaco.editor.createModel(source, 'typescript', monaco.Uri.parse(url)); }; @@ -368,13 +368,15 @@ function ExtensionEditor() { useEffect(() => { if (monaco) { - monaco.languages.typescript.javascriptDefaults.setEagerModelSync(true); - monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({ + monaco.languages.typescript.typescriptDefaults.setEagerModelSync(true); + monaco.languages.typescript.typescriptDefaults.setDiagnosticsOptions({ noSemanticValidation: false, noSyntaxValidation: false, + diagnosticCodesToIgnore: [1375, 2792], }); - monaco.languages.typescript.javascriptDefaults.setCompilerOptions({ + monaco.languages.typescript.typescriptDefaults.setCompilerOptions({ target: monaco.languages.typescript.ScriptTarget.ES2020, + module: monaco.languages.typescript.ModuleKind.ESNext, allowNonTsExtensions: true, }); setupLibrary(monaco, kilovoltDefinition, 'ts:index.d.ts');