UNPKG

@reliverse/rse

Version:

@reliverse/rse is your all-in-one companion for bootstrapping and improving any kind of projects (especially web apps built with frameworks like Next.js) — whether you're kicking off something new or upgrading an existing app. It is also a little AI-power

40 lines (39 loc) 1.39 kB
import { relinka } from "@reliverse/relinka"; import { inputPrompt } from "@reliverse/rempts"; import { VercelCore } from "@vercel/sdk/core"; import { saveVercelToken } from "../init/use-template/cp-modules/git-deploy-prompts/vercel/vercel-utils.js"; export async function askVercelToken(maskInput, memory) { if (!memory?.vercelKey) { const token = await inputPrompt({ title: "Please enter your Vercel personal access token.\n(It will be securely stored on your machine):", content: "Create one at https://vercel.com/account/settings/tokens", mode: maskInput ? "password" : "plain", validate: (value) => { if (!value?.trim()) return "Token is required"; return true; } }); if (!token) { relinka("error", "No token provided"); return void 0; } return token; } return memory.vercelKey; } export async function initVercelSDK(memory, maskInput) { let vercelToken = memory?.vercelKey; if (!vercelToken) { vercelToken = await askVercelToken(maskInput, memory); if (!vercelToken) { relinka("error", "No token provided"); return void 0; } } const vercelInstance = new VercelCore({ bearerToken: vercelToken }); if (!memory.vercelKey) { await saveVercelToken(vercelToken, memory, vercelInstance); memory.vercelKey = vercelToken; } return [vercelToken, vercelInstance]; }