Skip to content

Commit 2efcd89

Browse files
committed
fix #94; avoid npm: runtime imports
1 parent 20a50c2 commit 2efcd89

File tree

14 files changed

+60
-39
lines changed

14 files changed

+60
-39
lines changed

src/runtime/stdlib/dot.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {instance} from "npm:@viz-js/viz";
1+
import {instance} from "https://cdn.jsdelivr.net/npm/@viz-js/viz/+esm";
22
import type {RawTemplateRenderer} from "./template.js";
33

44
const viz = await instance();

src/runtime/stdlib/duckdb.js

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import * as duckdb from "npm:@duckdb/duckdb-wasm";
1+
import * as duckdb from "https://cdn.jsdelivr.net/npm/@duckdb/duckdb-wasm@1.29.0/+esm";
22

33
// Adapted from https://observablehq.com/@cmudig/duckdb-client
44
// Copyright 2021 CMU Data Interaction Group
@@ -32,13 +32,11 @@ import * as duckdb from "npm:@duckdb/duckdb-wasm";
3232
const bundles = {
3333
mvp: {
3434
mainModule: "https://cdn.jsdelivr.net/npm/@duckdb/duckdb-wasm@1.29.0/dist/duckdb-mvp.wasm",
35-
mainWorker:
36-
"https://cdn.jsdelivr.net/npm/@duckdb/duckdb-wasm@1.29.0/dist/duckdb-browser-mvp.worker.js"
35+
mainWorker: "https://cdn.jsdelivr.net/npm/@duckdb/duckdb-wasm@1.29.0/dist/duckdb-browser-mvp.worker.js" // prettier-ignore
3736
},
3837
eh: {
3938
mainModule: "https://cdn.jsdelivr.net/npm/@duckdb/duckdb-wasm@1.29.0/dist/duckdb-eh.wasm",
40-
mainWorker:
41-
"https://cdn.jsdelivr.net/npm/@duckdb/duckdb-wasm@1.29.0/dist/duckdb-browser-eh.worker.js"
39+
mainWorker: "https://cdn.jsdelivr.net/npm/@duckdb/duckdb-wasm@1.29.0/dist/duckdb-browser-eh.worker.js" // prettier-ignore
4240
}
4341
};
4442
const bundle = duckdb.selectBundle(bundles);
@@ -325,13 +323,13 @@ async function insertArrowTable(database, name, table, options) {
325323
async function insertArqueroTable(database, name, source) {
326324
// TODO When we have stdlib versioning and can upgrade Arquero to version 5,
327325
// we can then call source.toArrow() directly, with insertArrowTable()
328-
const arrow = await import("npm:apache-arrow");
326+
const arrow = await import("https://cdn.jsdelivr.net/npm/apache-arrow@17.0.0/+esm");
329327
const table = arrow.tableFromIPC(source.toArrowBuffer());
330328
return await insertArrowTable(database, name, table);
331329
}
332330

333331
async function insertArray(database, name, array, options) {
334-
const arrow = await import("npm:apache-arrow");
332+
const arrow = await import("https://cdn.jsdelivr.net/npm/apache-arrow@17.0.0/+esm");
335333
const table = arrow.tableFromJSON(array);
336334
return await insertArrowTable(database, name, table, options);
337335
}

src/runtime/stdlib/fileAttachment.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ export abstract class AbstractFile implements FileAttachment {
124124
return (await fetchFile(this)).body!;
125125
}
126126
async dsv({delimiter = ",", array = false, typed = false} = {}): Promise<DsvResult> {
127-
const [text, d3] = await Promise.all([this.text(), import("npm:d3-dsv")]);
127+
const [text, d3] = await Promise.all([this.text(), import("https://cdn.jsdelivr.net/npm/d3-dsv/+esm")]); // prettier-ignore
128128
const format = d3.dsvFormat(delimiter);
129129
const parse = array ? format.parseRows : format.parse;
130130
return parse(text, typed && d3.autoType);
@@ -147,18 +147,17 @@ export abstract class AbstractFile implements FileAttachment {
147147
});
148148
}
149149
async arrow(): Promise<any> {
150-
const [Arrow, response] = await Promise.all([import("npm:apache-arrow"), fetchFile(this)]);
150+
const [Arrow, response] = await Promise.all([import("https://cdn.jsdelivr.net/npm/apache-arrow@17.0.0/+esm"), fetchFile(this)]); // prettier-ignore
151151
return Arrow.tableFromIPC(response);
152152
}
153153
async arquero(options?: any): Promise<any> {
154-
let request;
155-
let from;
154+
let request: Promise<unknown>;
155+
let from: string;
156156
switch (this.mimeType) {
157157
case "application/json":
158158
request = this.text();
159159
from = "fromJSON";
160160
break;
161-
// @ts-expect-error fall through
162161
case "text/tab-separated-values":
163162
if (options?.delimiter === undefined) options = {...options, delimiter: "\t"};
164163
// fall through
@@ -178,11 +177,11 @@ export abstract class AbstractFile implements FileAttachment {
178177
}
179178
break;
180179
}
181-
const [aq, body] = await Promise.all([import("npm:arquero"), request]);
180+
const [aq, body] = await Promise.all([import("https://cdn.jsdelivr.net/npm/arquero/+esm"), request]); // prettier-ignore
182181
return aq[from](body, options);
183182
}
184183
async parquet() {
185-
const [Arrow, Parquet, buffer] = await Promise.all([import("npm:apache-arrow"), import("npm:parquet-wasm").then(async (Parquet) => (await Parquet.default("https://cdn.jsdelivr.net/npm/parquet-wasm/esm/parquet_wasm_bg.wasm"), Parquet)), this.arrayBuffer()]); // prettier-ignore
184+
const [Arrow, Parquet, buffer] = await Promise.all([import("https://cdn.jsdelivr.net/npm/apache-arrow@17.0.0/+esm"), import("https://cdn.jsdelivr.net/npm/parquet-wasm/+esm").then(async (Parquet) => (await Parquet.default("https://cdn.jsdelivr.net/npm/parquet-wasm/esm/parquet_wasm_bg.wasm"), Parquet)), this.arrayBuffer()]); // prettier-ignore
186185
return Arrow.tableFromIPC(Parquet.readParquet(new Uint8Array(buffer)).intoIPCStream());
187186
}
188187
async xml(mimeType: DOMParserSupportedType = "application/xml"): Promise<Document> {

src/runtime/stdlib/inputs.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
export * from "npm:@observablehq/inputs";
1+
export * from "https://cdn.jsdelivr.net/npm/@observablehq/inputs/+esm";
22

33
import "./inputs.css";

src/runtime/stdlib/leaflet.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import {Icon} from "npm:leaflet";
1+
import {Icon} from "https://cdn.jsdelivr.net/npm/leaflet/+esm";
22

3-
export * from "npm:leaflet";
3+
export * from "https://cdn.jsdelivr.net/npm/leaflet/+esm";
44

55
Icon.Default.imagePath = "https://cdn.jsdelivr.net/npm/leaflet/dist/images/";
66

src/runtime/stdlib/mapboxgl.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export {default} from "npm:mapbox-gl";
1+
export {default} from "https://cdn.jsdelivr.net/npm/mapbox-gl/+esm";
22

33
const link = document.createElement("link");
44
link.href = "https://cdn.jsdelivr.net/npm/mapbox-gl/dist/mapbox-gl.css";

src/runtime/stdlib/mermaid.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import mer from "npm:mermaid";
1+
import mer from "https://cdn.jsdelivr.net/npm/mermaid/+esm";
22
import type {AsyncRawTemplateRenderer} from "./template.js";
33

44
let nextId = 0;
Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
1-
export const _ = () => import("npm:lodash").then((_) => _.default);
2-
export const aq = () => import("npm:arquero");
3-
export const Arrow = () => import("npm:apache-arrow");
4-
export const d3 = () => import("npm:d3");
1+
export const _ = () => import("https://cdn.jsdelivr.net/npm/lodash/+esm").then((_) => _.default);
2+
export const aq = () => import("https://cdn.jsdelivr.net/npm/arquero/+esm");
3+
export const Arrow = () => import("https://cdn.jsdelivr.net/npm/apache-arrow@17.0.0/+esm");
4+
export const d3 = () => import("https://cdn.jsdelivr.net/npm/d3/+esm");
55
export const dot = () => import("./dot.js").then((_) => _.dot);
6-
export const duckdb = () => import("npm:@duckdb/duckdb-wasm");
6+
export const duckdb = () => import("https://cdn.jsdelivr.net/npm/@duckdb/duckdb-wasm@1.29.0/+esm");
77
export const DuckDBClient = () => import("./duckdb.js").then((_) => _.DuckDBClient);
8-
export const echarts = () => import("npm:echarts");
9-
export const htl = () => import("npm:htl");
10-
export const html = () => import("npm:htl").then((_) => _.html);
11-
export const svg = () => import("npm:htl").then((_) => _.svg);
8+
export const echarts = () => import("https://cdn.jsdelivr.net/npm/echarts/+esm");
9+
export const htl = () => import("https://cdn.jsdelivr.net/npm/htl/+esm");
10+
export const html = () => import("https://cdn.jsdelivr.net/npm/htl/+esm").then((_) => _.html);
11+
export const svg = () => import("https://cdn.jsdelivr.net/npm/htl/+esm").then((_) => _.svg);
1212
export const Inputs = () => import("./inputs.js");
1313
export const L = () => import("./leaflet.js");
1414
export const mapboxgl = () => import("./mapboxgl.js").then((_) => _.default);
1515
export const md = () => import("./md.js").then((_) => _.md);
1616
export const mermaid = () => import("./mermaid.js").then((_) => _.mermaid);
17-
export const Plot = () => import("npm:@observablehq/plot");
18-
export const React = () => import("npm:react");
19-
export const ReactDOM = () => import("npm:react-dom");
17+
export const Plot = () => import("https://cdn.jsdelivr.net/npm/@observablehq/plot/+esm");
18+
export const React = () => import("https://cdn.jsdelivr.net/npm/react/+esm");
19+
export const ReactDOM = () => import("https://cdn.jsdelivr.net/npm/react-dom/+esm");
2020
// export const sql = () => import("observablehq:stdlib/duckdb").then((_) => _.sql);
2121
// export const SQLite = () => import("observablehq:stdlib/sqlite").then((_) => _.default);
2222
// export const SQLiteDatabaseClient = () => import("observablehq:stdlib/sqlite").then((_) => _.SQLiteDatabaseClient);
2323
export const tex = () => import("./tex.js").then((_) => _.tex);
24-
export const topojson = () => import("npm:topojson-client");
24+
export const topojson = () => import("https://cdn.jsdelivr.net/npm/topojson-client/+esm");
2525
// export const vg = () => import("observablehq:stdlib/vgplot").then((_) => _.default());
2626
export const vl = () => import("./vega-lite.js").then((_) => _.vl);

src/runtime/stdlib/sampleDatasets.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,6 @@ async function text(url: string) {
2828
}
2929

3030
async function csv(url: string, typed: boolean) {
31-
const [contents, d3] = await Promise.all([text(url), import("npm:d3-dsv")]);
31+
const [contents, d3] = await Promise.all([text(url), import("https://cdn.jsdelivr.net/npm/d3-dsv/+esm")]); // prettier-ignore
3232
return d3.csvParse(contents, typed && d3.autoType);
3333
}

src/runtime/stdlib/tex.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* eslint-disable @typescript-eslint/no-explicit-any */
2-
import katex from "npm:katex";
2+
import katex from "https://cdn.jsdelivr.net/npm/katex/+esm";
33
import type {RawTemplateRenderer} from "./template.js";
44

55
const link = document.createElement("link");

0 commit comments

Comments
 (0)