ModReleaser/src/lib/modrinth/project.ts
2026-07-13 18:58:49 +08:00

31 lines
845 B
TypeScript

import { ModrinthClient } from "./client";
import { ProjectSchema, type Project } from "@/types";
/**
* 获取单个 project 的完整信息。
* GET /project/{id|slug}
*/
export async function getProject(
client: ModrinthClient,
idOrSlug: string,
): Promise<Project> {
const path = `/project/${encodeURIComponent(idOrSlug)}`;
const data = await client.get<unknown>(path);
return ProjectSchema.parse(data);
}
/**
* 批量获取多个 project 的完整信息。
* GET /projects?ids=["...","..."]
*/
export async function getProjects(
client: ModrinthClient,
ids: string[],
): Promise<Project[]> {
const params = new URLSearchParams();
params.set("ids", JSON.stringify(ids));
const path = `/projects?${params.toString()}`;
const data = await client.get<unknown[]>(path);
return ProjectSchema.array().parse(data);
}