get-package-manager.ts — ui Source File
Architecture documentation for get-package-manager.ts, a typescript file in the ui codebase. 1 imports, 1 dependents.
Entity Profile
Dependency Diagram
graph LR c183d6fb_71b5_5e4c_de0b_08e22a8776c9["get-package-manager.ts"] 431e7980_c33b_b39b_e0bf_d65cfb64296c["ni"] c183d6fb_71b5_5e4c_de0b_08e22a8776c9 --> 431e7980_c33b_b39b_e0bf_d65cfb64296c c0bad345_818b_73b1_8d07_c1207eec1519["get-package-manager.test.ts"] c0bad345_818b_73b1_8d07_c1207eec1519 --> c183d6fb_71b5_5e4c_de0b_08e22a8776c9 style c183d6fb_71b5_5e4c_de0b_08e22a8776c9 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
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"
}
Domain
Subdomains
Functions
Dependencies
- ni
Source
Frequently Asked Questions
What does get-package-manager.ts do?
get-package-manager.ts is a source file in the ui codebase, written in typescript. It belongs to the FrameworkTooling domain, TemplateSync subdomain.
What functions are defined in get-package-manager.ts?
get-package-manager.ts defines 2 function(s): getPackageManager, getPackageRunner.
What does get-package-manager.ts depend on?
get-package-manager.ts imports 1 module(s): ni.
What files import get-package-manager.ts?
get-package-manager.ts is imported by 1 file(s): get-package-manager.test.ts.
Where is get-package-manager.ts in the architecture?
get-package-manager.ts is located at packages/shadcn/src/utils/get-package-manager.ts (domain: FrameworkTooling, subdomain: TemplateSync, directory: packages/shadcn/src/utils).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free