Skip to main content
Glama
reuvenaor

Shadcn Registry manager

by reuvenaor
get-package-manager.ts1.1 kB
import { detect } from "@antfu/ni" export async function getPackageManager( targetDir: string, { withFallback }: { withFallback?: boolean } = { withFallback: false, } ): Promise<"yarn" | "pnpm" | "bun" | "npm" | "deno"> { const packageManager = await detect({ programmatic: true, cwd: targetDir }) if (packageManager === "yarn@berry") return "yarn" if (packageManager === "pnpm@6") return "pnpm" if (packageManager === "bun") return "bun" if (packageManager === "deno") return "deno" if (!withFallback) { return packageManager ?? "npm" } // Fallback to user agent if not detected. const userAgent = process.env.npm_config_user_agent || "" if (userAgent.startsWith("yarn")) { return "yarn" } if (userAgent.startsWith("pnpm")) { return "pnpm" } if (userAgent.startsWith("bun")) { return "bun" } return "npm" } export async function getPackageRunner(cwd: string) { const packageManager = await getPackageManager(cwd) if (packageManager === "pnpm") return "pnpm dlx" if (packageManager === "bun") return "bunx" return "npx" }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/reuvenaor/shadcn-registry-manager'

If you have feedback or need assistance with the MCP directory API, please join our Discord server