|
1 | 1 | #!/usr/bin/env node |
2 | 2 |
|
3 | 3 | const fetch = require("node-fetch"); |
| 4 | +const extensionRe = /\.[^/]*$/; |
| 5 | +const mains = ["unpkg", "jsdelivr", "browser", "main"]; |
4 | 6 |
|
5 | 7 | (async () => { |
6 | 8 | console.log(`import dependency from "./dependency.js";`); |
@@ -40,6 +42,10 @@ const fetch = require("node-fetch"); |
40 | 42 | const package = await resolve("htl"); |
41 | 43 | console.log(`export const htl = dependency("${package.name}", "${package.version}", "${package.export}");`); |
42 | 44 | } |
| 45 | + { |
| 46 | + const package = await resolve("jszip"); |
| 47 | + console.log(`export const jszip = dependency("${package.name}", "${package.version}", "dist/jszip.min.js");`); |
| 48 | + } |
43 | 49 | { |
44 | 50 | const package = await resolve("marked@0.3.12"); |
45 | 51 | console.log(`export const marked = dependency("${package.name}", "${package.version}", "marked.min.js");`); |
@@ -72,6 +78,17 @@ async function resolve(specifier) { |
72 | 78 | return { |
73 | 79 | name: package.name, |
74 | 80 | version: package.version, |
75 | | - export: (package.unpkg || package.jsdelivr || package.browser || package.main).replace(/^\.\//, "") |
| 81 | + export: main(package) |
76 | 82 | }; |
77 | 83 | } |
| 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 | +} |
0 commit comments