Skip to content

Commit 53ab0e2

Browse files
committed
use serialize’s document option; related #7
1 parent efbc4b8 commit 53ab0e2

File tree

1 file changed

+10
-15
lines changed

1 file changed

+10
-15
lines changed

bin/download.ts

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -29,21 +29,16 @@ export default async function run(args?: string[]) {
2929
return;
3030
}
3131

32-
const globalDocument = globalThis.document;
33-
globalThis.document = new JSDOM().window.document;
34-
try {
35-
for (const positional of positionals) {
36-
let url = new URL(positional, "https://observablehq.com");
37-
if (url.origin === "https://observablehq.com") {
38-
url = new URL(`/document${url.pathname.replace(/^\/d\//, "/")}`, "https://api.observablehq.com");
39-
}
40-
const response = await fetch(url);
41-
if (!response.ok) throw new Error(`unable to fetch: ${url}`);
42-
const {title, nodes} = await response.json();
43-
for (const node of nodes) if (node.mode === "js") node.mode = "ojs";
44-
process.stdout.write(serialize(toNotebook({title, cells: nodes})));
32+
const document = new JSDOM().window.document;
33+
for (const positional of positionals) {
34+
let url = new URL(positional, "https://observablehq.com");
35+
if (url.origin === "https://observablehq.com") {
36+
url = new URL(`/document${url.pathname.replace(/^\/d\//, "/")}`, "https://api.observablehq.com");
4537
}
46-
} finally {
47-
globalThis.document = globalDocument;
38+
const response = await fetch(url);
39+
if (!response.ok) throw new Error(`unable to fetch: ${url}`);
40+
const {title, nodes} = await response.json();
41+
for (const node of nodes) if (node.mode === "js") node.mode = "ojs";
42+
process.stdout.write(serialize(toNotebook({title, cells: nodes}), {document}));
4843
}
4944
}

0 commit comments

Comments
 (0)