Skip to content

Commit 84d3e5c

Browse files
authored
lazily load DuckDB during preview (#1060)
1 parent 4c0582e commit 84d3e5c

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

src/client/preview.js

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import {registerTable} from "npm:@observablehq/duckdb";
21
import {FileAttachment, registerFile} from "npm:@observablehq/stdlib";
32
import {main, runtime, undefine} from "./main.js";
43
import {enableCopyButtons} from "./pre.js";
@@ -17,7 +16,7 @@ export function open({hash, eval: compile} = {}) {
1716
send({type: "hello", path: location.pathname, hash});
1817
};
1918

20-
socket.onmessage = (event) => {
19+
socket.onmessage = async (event) => {
2120
const message = JSON.parse(event.data);
2221
console.info("↓", message);
2322
switch (message.type) {
@@ -84,11 +83,14 @@ export function open({hash, eval: compile} = {}) {
8483
for (const file of message.files.added) {
8584
registerFile(file.name, file);
8685
}
87-
for (const name of message.tables.removed) {
88-
registerTable(name, null);
89-
}
90-
for (const table of message.tables.added) {
91-
registerTable(table.name, FileAttachment(table.path));
86+
if (message.tables.removed.length || message.tables.added.length) {
87+
const {registerTable} = await import("npm:@observablehq/duckdb");
88+
for (const name of message.tables.removed) {
89+
registerTable(name, null);
90+
}
91+
for (const table of message.tables.added) {
92+
registerTable(table.name, FileAttachment(table.path));
93+
}
9294
}
9395
if (message.tables.removed.length || message.tables.added.length) {
9496
const sql = main._resolve("sql");

0 commit comments

Comments
 (0)