Skip to content
This repository was archived by the owner on Mar 13, 2024. It is now read-only.

Commit 0d6dd96

Browse files
authored
fix: use npm instead of github (#10)
1 parent d234bba commit 0d6dd96

File tree

3 files changed

+30
-40
lines changed

3 files changed

+30
-40
lines changed

server/api/packages.json.ts

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,19 @@
1-
import type { GitHubFile, GitHubRepo } from '../types'
1+
import type { NpmPackage, UnjsPackage } from '../types'
22

33
export default defineEventHandler(async (event) => {
4-
const repos = await $fetch<{ repos: GitHubRepo[] }>('https://ungh.cc/orgs/unjs/repos').then(({ repos }) => repos.filter(repo => !internalRepos.has(repo.name)))
4+
const unjsProjects = await $fetch<UnjsPackage[]>('https://unjs.io/api/content/packages.json')
5+
const packages = unjsProjects.filter(project => project.npm).sort((a, b) => b.title.localeCompare(a.title))
6+
const packageNames = packages.map(pkg => pkg.npm?.name)
57

6-
const reposNames = repos.map(repo => repo.name)
7-
8-
const unjsDepsPerRepo = await Promise.all(repos.map(repo => $fetch<GitHubFile>(`https://ungh.cc/repos/unjs/${repo.name}/files/main/package.json`).then((file) => {
9-
const pkg = JSON.parse(file.file.contents)
8+
const npmPackages = await Promise.all(packages.map(pkg => $fetch<{ package: NpmPackage }>(`https://unnpm.pages.dev/packages/${pkg.npm?.name}`)))
109

10+
setResponseHeader(event, 'Content-Type', 'application/json')
11+
return npmPackages.map(({ package: pkg }) => {
1112
return {
12-
name: repo.name,
13-
description: repo.description,
14-
dependencies: Object.keys(pkg.dependencies || {}).filter(dependency => reposNames.includes(dependency)),
15-
devDependencies: Object.keys(pkg.devDependencies || {}).filter(dependency => reposNames.includes(dependency)),
13+
name: pkg.name,
14+
description: pkg.description,
15+
dependencies: Object.keys(pkg.dependencies || {}).filter(dep => packageNames.includes(dep)),
16+
devDependencies: Object.keys(pkg.devDependencies || {}).filter(dep => packageNames.includes(dep)),
1617
}
17-
})))
18-
19-
setResponseHeader(event, 'Content-Type', 'application/json')
20-
return unjsDepsPerRepo.sort((a, b) => b.name.localeCompare(a.name))
18+
})
2119
})

server/types.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,21 @@
1+
export interface UnjsPackage {
2+
title: string
3+
description: string
4+
path: string
5+
url: string
6+
npm?: {
7+
name: string
8+
}
9+
}
10+
11+
export interface NpmPackage {
12+
name: string
13+
description: string
14+
version: string
15+
dependencies?: string[]
16+
devDependencies?: string[]
17+
}
18+
119
// https://github.com/unjs/ungh/tree/main#reposownername
220
export interface GitHubRepo {
321
'id': number

server/utils/repos.ts

Lines changed: 0 additions & 26 deletions
This file was deleted.

0 commit comments

Comments
 (0)