mirror of https://github.com/pyodide/pyodide.git
add a generic webworker file
This commit is contained in:
parent
8e8ac26be9
commit
e1fb1b966e
5
Makefile
5
Makefile
|
@ -57,7 +57,8 @@ all: build/pyodide.asm.js \
|
|||
build/renderedhtml.css \
|
||||
build/test.data \
|
||||
build/packages.json \
|
||||
build/test.html
|
||||
build/test.html \
|
||||
build/webworker.js
|
||||
|
||||
|
||||
build/pyodide.asm.js: src/main.bc src/jsimport.bc src/jsproxy.bc src/js2python.bc \
|
||||
|
@ -112,6 +113,8 @@ build/test.html: src/test.html
|
|||
build/renderedhtml.css: src/renderedhtml.less
|
||||
lessc $< $@
|
||||
|
||||
build/webworker.js: src/webworker.js
|
||||
cp $< $@
|
||||
|
||||
test: all
|
||||
pytest test/ -v
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
importScripts('./pyodide.js')
|
||||
|
||||
var onmessage = function(e) { // eslint-disable-line no-unused-vars
|
||||
languagePluginLoader.then(() => {
|
||||
const data = e.data;
|
||||
const keys = Object.keys(data);
|
||||
for (let key of keys) {
|
||||
if (key !== 'python') {
|
||||
// Keys other than python must be arguments for the python script.
|
||||
// Set them on self, so that `from js import key` works.
|
||||
self[key] = data[key];
|
||||
}
|
||||
}
|
||||
self.pyodide.runPythonAsync(data.python, () => {}).then((results) => {
|
||||
self.postMessage({results});
|
||||
}).catch((err) => {
|
||||
// if you prefer messages with the error
|
||||
self.postMessage({error: err.message});
|
||||
// if you prefer onerror events
|
||||
// setTimeout(() => { throw err; });
|
||||
});
|
||||
});
|
||||
}
|
Loading…
Reference in New Issue