@theholocron/vercel-client
v1.35.0
Published
A TypeScript client for the Vercel API
Downloads
7,165
Maintainers
Readme
@theholocron/vercel-client
TypeScript client for the Vercel API.
Install
pnpm add @theholocron/vercel-clientUsage
import { createVercelClient } from "@theholocron/vercel-client";
const vercel = createVercelClient({
token: process.env.VERCEL_TOKEN!,
teamId: process.env.VERCEL_TEAM_ID, // optional; appended to every request
});
// Get the authenticated user
const { user } = await vercel.user.get();
// List projects
const { projects } = await vercel.projects.list();
// Get a project by name or id
const project = await vercel.projects.get("my-app");
// Create a project
const created = await vercel.projects.create({
name: "my-app",
framework: "nextjs",
repo: "org/repo",
});
// Update project settings
await vercel.projects.update("project-id", {
previewDeploymentsDisabled: true,
});
// List env vars
const { envs } = await vercel.env.list("project-id");
// Set (upsert) an env var
await vercel.env.set("project-id", "production", "API_URL", "https://api.example.com");
// Trigger a deployment (requires a project linked to a Git repo)
const deployment = await vercel.deployments.trigger({
projectName: "my-app",
branch: "main",
repoId: project.link?.repoId!,
target: "production",
});
// Create a deployment directly from source files — no linked repo required
const fnDeployment = await vercel.deployments.create({
projectName: "my-fn",
files: [{ file: "api/webhook.js", content: "export default () => new Response('ok');" }],
framework: null, // no framework preset — a bare function, not an app
target: "production",
});
// Poll deployment status
const status = await vercel.deployments.get(deployment.id);
// List a project's custom domains
const { domains } = await vercel.domains.list("project-id");
// Add a custom domain — the CNAME target is generated per-project by
// Vercel, not a fixed well-known host; always read it from the response
const added = await vercel.domains.add("project-id", "sentinel.example.com");
if (!added.verified) {
console.log(added.verification); // [{ type: "CNAME", domain, value }]
}Status
v0.11.3 — published on npm. APIs may shift before v1.
