Browse Source

refac: pyodide worker error handling

Timothy J. Baek 11 months ago
parent
commit
066789d423

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

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

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

@@ -59,7 +59,11 @@ self.onmessage = async (event) => {
 	// make sure loading is done
 	// make sure loading is done
 	await loadPyodideAndPackages(self.packages);
 	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 });
 	self.postMessage({ id, result: self.result, stdout: self.stdout, stderr: self.stderr });
 };
 };