mirror of
https://github.com/pyscript/pyscript.git
synced 2025-12-20 18:55:29 -05:00
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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user