Skip to content

Commit 0323209

Browse files
authored
resolve jszip (#238)
1 parent c7acee9 commit 0323209

File tree

4 files changed

+21
-7
lines changed

4 files changed

+21
-7
lines changed

bin/resolve-dependencies

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
#!/usr/bin/env node
22

33
const fetch = require("node-fetch");
4+
const extensionRe = /\.[^/]*$/;
5+
const mains = ["unpkg", "jsdelivr", "browser", "main"];
46

57
(async () => {
68
console.log(`import dependency from "./dependency.js";`);
@@ -40,6 +42,10 @@ const fetch = require("node-fetch");
4042
const package = await resolve("htl");
4143
console.log(`export const htl = dependency("${package.name}", "${package.version}", "${package.export}");`);
4244
}
45+
{
46+
const package = await resolve("jszip");
47+
console.log(`export const jszip = dependency("${package.name}", "${package.version}", "dist/jszip.min.js");`);
48+
}
4349
{
4450
const package = await resolve("[email protected]");
4551
console.log(`export const marked = dependency("${package.name}", "${package.version}", "marked.min.js");`);
@@ -72,6 +78,17 @@ async function resolve(specifier) {
7278
return {
7379
name: package.name,
7480
version: package.version,
75-
export: (package.unpkg || package.jsdelivr || package.browser || package.main).replace(/^\.\//, "")
81+
export: main(package)
7682
};
7783
}
84+
85+
// https://github.com/d3/d3-require/blob/4056a786912e9335a86b41c2b1cdfa392bd14289/src/index.js#L20-L27
86+
function main(meta) {
87+
for (const key of mains) {
88+
const value = meta[key];
89+
if (typeof value === "string") {
90+
return (extensionRe.test(value) ? value : `${value}.js`).replace(/^\.\//, "");
91+
}
92+
}
93+
return "index.js";
94+
}

src/dependencies.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ export const highlight = dependency("@observablehq/highlight.js", "2.0.0", "high
88
export const katex = dependency("@observablehq/katex", "0.11.1", "dist/katex.min.js");
99
export const lodash = dependency("lodash", "4.17.21", "lodash.min.js");
1010
export const htl = dependency("htl", "0.2.5", "dist/htl.min.js");
11+
export const jszip = dependency("jszip", "3.7.0", "dist/jszip.min.js");
1112
export const marked = dependency("marked", "0.3.12", "marked.min.js");
1213
export const sql = dependency("sql.js", "1.5.0", "dist/sql-wasm.js");
1314
export const vega = dependency("vega", "5.20.2", "build/vega.min.js");

src/fileAttachment.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import {require as requireDefault} from "d3-require";
2-
import {arrow, d3Dsv} from "./dependencies.js";
2+
import {arrow, d3Dsv, jszip} from "./dependencies.js";
33
import {SQLiteDatabaseClient} from "./sqlite.js";
4-
import jszip from "./zip.js";
54

65
async function remote_fetch(file) {
76
const response = await fetch(await file.url());
@@ -61,7 +60,7 @@ class AbstractFile {
6160
return SQLiteDatabaseClient.open(remote_fetch(this));
6261
}
6362
async zip() {
64-
const [JSZip, buffer] = await Promise.all([jszip(requireDefault), this.arrayBuffer()]);
63+
const [JSZip, buffer] = await Promise.all([requireDefault(jszip.resolve()), this.arrayBuffer()]);
6564
return new ZipArchive(await JSZip.loadAsync(buffer));
6665
}
6766
}

src/zip.js

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)