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).

37 lines (36 loc) 1.08 kB
import { relinka } from "@reliverse/relinka"; import { projectsGetProjectEnv } from "@vercel/sdk/funcs/projectsGetProjectEnv"; const MAX_RETRIES = 3; const RETRY_DELAY = 5e3; export async function getVercelEnvVar(vercelInstance, projectId, envVarId) { try { const res = await projectsGetProjectEnv(vercelInstance, { idOrName: projectId, id: envVarId }); if (!res.ok) { throw res.error; } const envVar = res.value; return envVar; } catch (error) { relinka( "error", "Error getting Vercel env var:", error instanceof Error ? error.message : String(error) ); return void 0; } } export async function withRateLimit(fn, retries = MAX_RETRIES) { try { return await fn(); } catch (error) { if (error instanceof Error && error.message.includes("rate limit") && retries > 0) { relinka("info", `Rate limit hit, retrying in ${RETRY_DELAY / 1e3}s...`); await new Promise((resolve) => setTimeout(resolve, RETRY_DELAY)); return withRateLimit(fn, retries - 1); } throw error; } }