Buckets:
| import { query } from "@solidjs/router" | |
| import { config } from "~/config" | |
| export const github = query(async () => { | |
| "use server" | |
| const headers = { | |
| "User-Agent": | |
| "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36", | |
| } | |
| const apiBaseUrl = config.github.repoUrl.replace("https://github.com/", "https://api.github.com/repos/") | |
| try { | |
| const [meta, releases, contributors] = await Promise.all([ | |
| fetch(apiBaseUrl, { headers }).then((res) => res.json()), | |
| fetch(`${apiBaseUrl}/releases`, { headers }).then((res) => res.json()), | |
| fetch(`${apiBaseUrl}/contributors?per_page=1`, { headers }), | |
| ]) | |
| if (!Array.isArray(releases) || releases.length === 0) { | |
| return undefined | |
| } | |
| const [release] = releases | |
| const linkHeader = contributors.headers.get("Link") | |
| const contributorCount = linkHeader | |
| ? Number.parseInt(linkHeader.match(/&page=(\d+)>; rel="last"/)?.at(1) ?? "0") | |
| : 0 | |
| return { | |
| stars: meta.stargazers_count, | |
| release: { | |
| name: release.name, | |
| url: release.html_url, | |
| tag_name: release.tag_name, | |
| }, | |
| contributors: contributorCount, | |
| } | |
| } catch (e) { | |
| console.error(e) | |
| } | |
| return undefined | |
| }, "github") | |
Xet Storage Details
- Size:
- 1.29 kB
- Xet hash:
- a32c81987dbd5bab7f01cc5420bac931b575e9f9eff98f8d31a02d1ae02b69a5
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.