| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- import { query } from "@solidjs/router"
- export const github = query(async () => {
- "use server"
- try {
- const [meta, releases, contributors] = await Promise.all([
- fetch("https://api.github.com/repos/sst/opencode").then(async (res) => {
- const text = await res.text()
- console.log(text)
- const json = JSON.parse(text)
- return json
- }),
- fetch("https://api.github.com/repos/sst/opencode/releases").then(async (res) => {
- const text = await res.text()
- console.log(text)
- const json = JSON.parse(text)
- return json
- }),
- fetch("https://api.github.com/repos/sst/opencode/contributors?per_page=1"),
- ])
- const [release] = releases
- const contributorCount = Number.parseInt(
- contributors.headers
- .get("Link")!
- .match(/&page=(\d+)>; rel="last"/)!
- .at(1)!,
- )
- return {
- stars: meta.stargazers_count,
- release: {
- name: release.name,
- url: release.html_url,
- },
- contributors: contributorCount,
- }
- } catch (e) {
- console.error(e)
- }
- return undefined
- }, "github")
|