diff --git a/pyscriptjs/examples/d3.html b/pyscriptjs/examples/d3.html
index fcae36f..cf67ab7 100644
--- a/pyscriptjs/examples/d3.html
+++ b/pyscriptjs/examples/d3.html
@@ -109,7 +109,7 @@ for (const d of data) {
from pyodide import create_proxy, to_js
-from esm import d3
+import d3
fruits = [
dict(name="🍊", count=21),
diff --git a/pyscriptjs/src/components/pyscript.ts b/pyscriptjs/src/components/pyscript.ts
index c3df6b0..8fc626c 100644
--- a/pyscriptjs/src/components/pyscript.ts
+++ b/pyscriptjs/src/components/pyscript.ts
@@ -247,8 +247,6 @@ export class PyScript extends HTMLElement {
}
protected async _register_esm(pyodide: PyodideInterface): Promise {
- const imports: {[key: string]: unknown} = {}
-
for (const node of document.querySelectorAll("script[type='importmap']")) {
const importmap = (() => {
try {
@@ -265,17 +263,19 @@ export class PyScript extends HTMLElement {
if (typeof name != "string" || typeof url != "string")
continue
+ let exports: object
try {
// XXX: pyodide doesn't like Module(), failing with
// "can't read 'name' of undefined" at import time
- imports[name] = {...await import(url)}
+ exports = {...await import(url)}
} catch {
- console.error(`failed to fetch '${url}' for '${name}'`)
+ console.warn(`failed to fetch '${url}' for '${name}'`)
+ continue
}
+
+ pyodide.registerJsModule(name, exports)
}
}
-
- pyodide.registerJsModule("esm", imports)
}
async evaluate(): Promise {