Export Runtime from PyScript Module (#868)

* export 'pyscript' JS module with runtime attribute, to allow accessing (Pyodide) runtime and globals from JS.
* add docs to explain the js module
* add integration tests for the js module

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
Jeff Glass
2022-10-23 13:46:19 -05:00
committed by GitHub
parent aa85f5f596
commit d9b8b48972
7 changed files with 157 additions and 6 deletions

View File

@@ -57,6 +57,7 @@ class PyScriptApp {
config: AppConfig;
loader: PyLoader;
runtime: Runtime;
// lifecycle (1)
main() {
@@ -111,13 +112,13 @@ class PyScriptApp {
"Only the first will be used");
}
const runtime_cfg = this.config.runtimes[0];
const runtime: Runtime = new PyodideRuntime(this.config, runtime_cfg.src,
this.runtime = new PyodideRuntime(this.config, runtime_cfg.src,
runtime_cfg.name, runtime_cfg.lang);
this.loader.log(`Downloading ${runtime_cfg.name}...`);
const script = document.createElement('script'); // create a script DOM node
script.src = runtime.src;
script.src = this.runtime.src;
script.addEventListener('load', () => {
void this.afterRuntimeLoad(runtime);
void this.afterRuntimeLoad(this.runtime);
});
document.head.appendChild(script);
}
@@ -209,3 +210,5 @@ globalExport('pyscript_get_config', pyscript_get_config);
// main entry point of execution
const globalApp = new PyScriptApp();
globalApp.main();
export const runtime = globalApp.runtime