Back
Version 70
12/10/2023
import { api } from "https://esm.town/v/pomdtr/api";
import { groups } from "npm:d3-array";
type Module = {
slug: string;
id: string;
websiteUrl: string;
category: string;
};
function getModuleInfoFromUrl(url: string): Module {
if (url.startsWith("https://esm.town")) {
const slug = url.split("/v/")[1].split("?v")[0];
return {
// TODO: Should be able to get specific version of val, but for now we remove versions
slug,
id: url.split("?v")[0],
websiteUrl: "https://www.val.town/v/" + slug,
category: "valtown",
};
}
if (url.startsWith("https://esm.sh")) {
const slug = url.split(".sh/")[1].split("@")[0];
return {
slug,
id: url.split("@")[0],
websiteUrl: "https://www.npmjs.com/package/" + slug,
category: "esm.sh",
};
}
if (url.startsWith("npm:")) {
const slug = url.startsWith("npm:@") ? "@" + url.split("@")[1] : url.replace("npm:", "").split("@")[0];
return {
slug,
id: url.split("@")[0],
websiteUrl: "https://www.npmjs.com/package/" + slug,
Updated: April 8, 2024