badge-urls
Version:
Helper functions to generate URLs for all badges / shields from shields.io
19 lines (18 loc) • 718 B
JavaScript
import scrapeUrl from "../../utils/scrapeUrl";
import { SHIELDS_IO_CATEGORY_PAGE_PREFIX, SHIELDS_IO_BASE_URL, } from "../constants";
const findCategories = (document) => {
const categories = [];
document
.querySelectorAll("#app > div a")
.forEach(({ href }) => {
if (!href.startsWith(SHIELDS_IO_CATEGORY_PAGE_PREFIX)) {
throw new Error(`URL does not start with ${SHIELDS_IO_CATEGORY_PAGE_PREFIX}`);
}
const category = href.substr(SHIELDS_IO_CATEGORY_PAGE_PREFIX.length);
categories.push(category);
});
return categories;
};
export default async function scrapeCategories() {
return findCategories(await scrapeUrl(SHIELDS_IO_BASE_URL));
}