浏览代码

refac: pyodide worker error handling

Timothy J. Baek 11 月之前
父节点
当前提交
066789d423
共有 2 个文件被更改,包括 6 次插入2 次删除
  1. 1 1
      src/lib/components/chat/Messages/CodeBlock.svelte
  2. 5 1
      src/lib/workers/pyodide.worker.ts

+ 1 - 1
src/lib/components/chat/Messages/CodeBlock.svelte

@@ -5,7 +5,7 @@
 	import 'highlight.js/styles/github-dark.min.css';
 	import { loadPyodide } from 'pyodide';
 	import { tick } from 'svelte';
-	import PyodideWorker from '../../../workers/pyodide.worker?worker';
+	import PyodideWorker from '$lib/workers/pyodide.worker?worker';
 
 	export let id = '';
 

+ 5 - 1
src/lib/workers/pyodide.worker.ts

@@ -59,7 +59,11 @@ self.onmessage = async (event) => {
 	// make sure loading is done
 	await loadPyodideAndPackages(self.packages);
 
-	self.result = await self.pyodide.runPythonAsync(code);
+	try {
+		self.result = await self.pyodide.runPythonAsync(code);
+	} catch (error) {
+		self.stderr = error.toString();
+	}
 	self.postMessage({ id, result: self.result, stdout: self.stdout, stderr: self.stderr });
 };