mirror of
https://seed.radicle.dev/rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5.git
synced 2026-11-01 01:30:46 +08:00
26 lines
696 B
TypeScript
26 lines
696 B
TypeScript
import type { BaseUrl, Project } from "@httpd-client";
|
|
|
|
import { HttpdClient } from "@httpd-client";
|
|
import { isFulfilled } from "@app/lib/utils";
|
|
|
|
export interface ProjectBaseUrl {
|
|
project: Project;
|
|
baseUrl: BaseUrl;
|
|
}
|
|
|
|
export async function getProjectsFromNodes(
|
|
params: { id: string; baseUrl: BaseUrl }[],
|
|
): Promise<ProjectBaseUrl[]> {
|
|
const projectPromises = params.map(async param => {
|
|
const api = new HttpdClient(param.baseUrl);
|
|
const project = await api.project.getById(param.id);
|
|
return {
|
|
project,
|
|
baseUrl: param.baseUrl,
|
|
};
|
|
});
|
|
|
|
const results = await Promise.allSettled(projectPromises);
|
|
return results.filter(isFulfilled).map(r => r.value);
|
|
}
|