UNPKG

@reliverse/rse-sdk

Version:

@reliverse/rse-sdk without cli. @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).

45 lines (44 loc) 1.68 kB
import { relinka } from "@reliverse/relinka"; import { projectsGetProjectDomains } from "@vercel/sdk/funcs/projectsGetProjectDomains"; export async function getVercelProjectDomain(vercelInstance, vercelToken, projectName) { try { if (!vercelToken) { throw new Error("No Vercel token provided"); } const res = await projectsGetProjectDomains(vercelInstance, { idOrName: projectName }); if (!res.ok) { throw res.error; } const { domains } = res.value; const defaultDomain = `${projectName}.vercel.app`; if (!Array.isArray(domains) || domains.length === 0) { return { domains: [defaultDomain], primary: defaultDomain }; } const validDomains = domains.filter((domain) => domain?.name).map((domain) => domain.name); const domainMap = /* @__PURE__ */ new Map(); validDomains.forEach((domain) => { const baseDomain = domain.startsWith("www.") ? domain.slice(4) : domain; const group = domainMap.get(baseDomain) ?? []; group.push(domain); domainMap.set(baseDomain, group); }); const effectiveDomains = Array.from(domainMap.values()).map((group) => { const nonWww = group.find((d) => !d.startsWith("www.")); return nonWww ?? group[0]; }).filter((domain) => domain !== void 0); return { domains: effectiveDomains, primary: effectiveDomains[0] ?? defaultDomain }; } catch (error) { relinka( "warn", "Failed to get Vercel domain:", error instanceof Error ? error.message : String(error) ); const defaultDomain = `${projectName}.vercel.app`; return { domains: [defaultDomain], primary: defaultDomain }; } }