UNPKG

@reliverse/rse-sdk

Version:

@reliverse/rse-sdk allows you to create new plugins for @reliverse/rse CLI, interact with reliverse.org, and even extend your own CLI functionality (you may also try @reliverse/dler-sdk for this case).

81 lines (80 loc) 2.14 kB
import { relinka } from "@reliverse/relinka"; import { teamsGetTeam } from "@vercel/sdk/funcs/teamsGetTeam"; import { teamsGetTeams } from "@vercel/sdk/funcs/teamsGetTeams"; import { getOrCreateReliverseMemory } from "../../../../../utils/reliverseMemory.js"; export async function getPrimaryVercelTeam(vercelInstance, memory) { try { if (memory.vercelTeamId && memory.vercelTeamSlug) { const isTeamValid = await verifyTeam( vercelInstance, memory.vercelTeamId, memory.vercelTeamSlug ); if (isTeamValid) { const teams2 = await getVercelTeams(vercelInstance); const memoryTeam = teams2.find( (team) => team.id === memory.vercelTeamId ); if (memoryTeam) { return memoryTeam; } } } const teams = await getVercelTeams(vercelInstance); if (teams?.length > 0 && teams[0]) { const team = teams[0]; memory.vercelTeamId = team.id; memory.vercelTeamSlug = team.slug; await getOrCreateReliverseMemory(); return team; } return void 0; } catch (error) { relinka( "warn", "Error getting primary Vercel team:", error instanceof Error ? error.message : String(error) ); return void 0; } } export async function verifyTeam(vercelInstance, teamId, teamSlug) { try { const res = await teamsGetTeam(vercelInstance, { teamId, slug: teamSlug }); if (!res.ok) { relinka( "warn", "Failed to verify team:", res.error?.message ?? "Unknown error" ); return false; } return true; } catch (error) { relinka( "warn", "Error verifying team:", error instanceof Error ? error.message : String(error) ); return false; } } export async function getVercelTeams(vercelInstance) { const res = await teamsGetTeams(vercelInstance, { limit: 10 }); if (!res.ok) { throw res.error; } const { teams } = res.value; return teams.filter( (team) => team.name !== null ).map((team) => ({ id: team.id, slug: team.slug, name: team.name })); }