cdn-resolve
Version:
Resolves import paths to their CDN equivalents
32 lines (29 loc) • 1 kB
JavaScript
import { parsePackage } from './chunk-L4VXHJAT.mjs';
// src/skypack.ts
function buildSkypackUrl(module, options) {
try {
const pkg = parsePackage(module);
const url = new URL(pkg.full, "https://cdn.skypack.dev/");
if (options?.dts) {
url.searchParams.set("dts", "true");
}
if (options?.min) {
url.searchParams.set("min", "true");
}
return url;
} catch {
return void 0;
}
}
async function resolveSkypackHeaders(url) {
if (url instanceof URL) {
url = url.toString();
}
const headers = await fetch(url).then((res) => res.headers);
return {
typesUrl: headers.has("x-typescript-types") ? `https://cdn.skypack.dev${headers.get("x-typescript-types")}` : void 0,
pinnedUrl: headers.has("x-pinned-url") ? `https://cdn.skypack.dev${headers.get("x-pinned-url")}` : void 0,
importUrl: headers.has("x-import-url") ? `https://cdn.skypack.dev${headers.get("x-import-url")}` : void 0
};
}
export { buildSkypackUrl, resolveSkypackHeaders };