Commit
·
aef2282
1
Parent(s):
9206294
fixed api stuff
Browse files- src/index.ts +22 -9
- src/types.ts +15 -3
src/index.ts
CHANGED
@@ -160,12 +160,17 @@ serve({
|
|
160 |
});
|
161 |
}
|
162 |
|
163 |
-
// Get single program
|
164 |
-
const programMatch = pathname.match(/^\/api\/programs\/([^/]+)\/([^/]+)$/);
|
165 |
if (programMatch) {
|
166 |
-
const
|
167 |
-
const
|
168 |
-
const
|
|
|
|
|
|
|
|
|
|
|
169 |
if (found) {
|
170 |
const result = { ...found, readme_content: "" };
|
171 |
return Response.json(result, {
|
@@ -178,11 +183,18 @@ serve({
|
|
178 |
headers: corsHeaders,
|
179 |
});
|
180 |
}
|
181 |
-
|
|
|
|
|
182 |
if (packageMatch) {
|
183 |
-
const
|
184 |
-
const
|
185 |
-
const
|
|
|
|
|
|
|
|
|
|
|
186 |
if (found) {
|
187 |
const result = { ...found, readme_content: "" };
|
188 |
return Response.json(result, {
|
@@ -196,6 +208,7 @@ serve({
|
|
196 |
});
|
197 |
}
|
198 |
|
|
|
199 |
// Index details endpoints
|
200 |
if (pathname === "/api/indexDetailsPackages") {
|
201 |
const section = searchParams.get("section");
|
|
|
160 |
});
|
161 |
}
|
162 |
|
163 |
+
// Get single program by repo_from/owner/repo
|
164 |
+
const programMatch = pathname.match(/^\/api\/programs\/([^/]+)\/([^/]+)\/([^/]+)$/);
|
165 |
if (programMatch) {
|
166 |
+
const repo_from = programMatch[1]?.toLowerCase() ?? "";
|
167 |
+
const owner = programMatch[2]?.toLowerCase() ?? "";
|
168 |
+
const repo = programMatch[3]?.toLowerCase() ?? "";
|
169 |
+
const found = programs.find(
|
170 |
+
(item) =>
|
171 |
+
item.repo_from?.toLowerCase() === repo_from &&
|
172 |
+
item.full_name?.toLowerCase() === `${owner}/${repo}`
|
173 |
+
);
|
174 |
if (found) {
|
175 |
const result = { ...found, readme_content: "" };
|
176 |
return Response.json(result, {
|
|
|
183 |
headers: corsHeaders,
|
184 |
});
|
185 |
}
|
186 |
+
|
187 |
+
// Get single package by repo_from/owner/repo
|
188 |
+
const packageMatch = pathname.match(/^\/api\/packages\/([^/]+)\/([^/]+)\/([^/]+)$/);
|
189 |
if (packageMatch) {
|
190 |
+
const repo_from = packageMatch[1]?.toLowerCase() ?? "";
|
191 |
+
const owner = packageMatch[2]?.toLowerCase() ?? "";
|
192 |
+
const repo = packageMatch[3]?.toLowerCase() ?? "";
|
193 |
+
const found = packages.find(
|
194 |
+
(item) =>
|
195 |
+
item.repo_from?.toLowerCase() === repo_from &&
|
196 |
+
item.full_name?.toLowerCase() === `${owner}/${repo}`
|
197 |
+
);
|
198 |
if (found) {
|
199 |
const result = { ...found, readme_content: "" };
|
200 |
return Response.json(result, {
|
|
|
208 |
});
|
209 |
}
|
210 |
|
211 |
+
|
212 |
// Index details endpoints
|
213 |
if (pathname === "/api/indexDetailsPackages") {
|
214 |
const section = searchParams.get("section");
|
src/types.ts
CHANGED
@@ -1,9 +1,10 @@
|
|
1 |
export interface Repo {
|
2 |
-
|
|
|
3 |
name: string;
|
4 |
full_name: string;
|
5 |
created_at: string;
|
6 |
-
description
|
7 |
default_branch: string;
|
8 |
open_issues: number;
|
9 |
stargazers_count: number;
|
@@ -11,11 +12,22 @@ export interface Repo {
|
|
11 |
watchers_count: number;
|
12 |
tags_url: string;
|
13 |
license: string;
|
14 |
-
topics
|
15 |
size: number;
|
16 |
fork: boolean;
|
17 |
updated_at: string;
|
18 |
has_build_zig: boolean;
|
19 |
has_build_zig_zon: boolean;
|
|
|
|
|
|
|
20 |
readme_content: string;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
}
|
|
|
1 |
export interface Repo {
|
2 |
+
content_is_correct?: boolean;
|
3 |
+
avatar_url: string | null;
|
4 |
name: string;
|
5 |
full_name: string;
|
6 |
created_at: string;
|
7 |
+
description?: string | null;
|
8 |
default_branch: string;
|
9 |
open_issues: number;
|
10 |
stargazers_count: number;
|
|
|
12 |
watchers_count: number;
|
13 |
tags_url: string;
|
14 |
license: string;
|
15 |
+
topics?: string[] | null;
|
16 |
size: number;
|
17 |
fork: boolean;
|
18 |
updated_at: string;
|
19 |
has_build_zig: boolean;
|
20 |
has_build_zig_zon: boolean;
|
21 |
+
zig_minimum_version: string;
|
22 |
+
repo_from: string;
|
23 |
+
dependencies?: (DependenciesEntity | null)[] | null;
|
24 |
readme_content: string;
|
25 |
+
dependents?: (string | null)[] | null;
|
26 |
+
}
|
27 |
+
export interface DependenciesEntity {
|
28 |
+
name: string;
|
29 |
+
url: string;
|
30 |
+
commit?: string | null;
|
31 |
+
tar_url?: string | null;
|
32 |
+
type: string;
|
33 |
}
|