diff --git a/packages/cli/src/utils/get-package-manager.ts b/packages/cli/src/utils/get-package-manager.ts index 91efb416eed..010d627735f 100644 --- a/packages/cli/src/utils/get-package-manager.ts +++ b/packages/cli/src/utils/get-package-manager.ts @@ -2,12 +2,13 @@ import { detect } from "@antfu/ni" export async function getPackageManager( targetDir: string -): Promise<"yarn" | "pnpm" | "bun" | "npm"> { +): 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" return packageManager ?? "npm" } diff --git a/packages/shadcn/src/utils/get-package-manager.ts b/packages/shadcn/src/utils/get-package-manager.ts index db9632b8265..63b155ad0b5 100644 --- a/packages/shadcn/src/utils/get-package-manager.ts +++ b/packages/shadcn/src/utils/get-package-manager.ts @@ -5,13 +5,13 @@ export async function getPackageManager( { withFallback }: { withFallback?: boolean } = { withFallback: false, } -): Promise<"yarn" | "pnpm" | "bun" | "npm"> { +): 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" } diff --git a/packages/shadcn/test/fixtures/project-bun-lock/bun.lock b/packages/shadcn/test/fixtures/project-bun-lock/bun.lock new file mode 100644 index 00000000000..fea2ca25b5d Binary files /dev/null and b/packages/shadcn/test/fixtures/project-bun-lock/bun.lock differ diff --git a/packages/shadcn/test/fixtures/project-bun-lock/package.json b/packages/shadcn/test/fixtures/project-bun-lock/package.json new file mode 100644 index 00000000000..b8cfd201f64 --- /dev/null +++ b/packages/shadcn/test/fixtures/project-bun-lock/package.json @@ -0,0 +1,7 @@ +{ + "name": "test-cli-project-bun", + "version": "1.0.0", + "main": "index.js", + "author": "shadcn", + "license": "MIT" +} diff --git a/packages/shadcn/test/utils/get-package-manager.test.ts b/packages/shadcn/test/utils/get-package-manager.test.ts index 3858f68384d..c373b804af1 100644 --- a/packages/shadcn/test/utils/get-package-manager.test.ts +++ b/packages/shadcn/test/utils/get-package-manager.test.ts @@ -20,6 +20,12 @@ test("get package manager", async () => { await getPackageManager(path.resolve(__dirname, "../fixtures/project-bun")) ).toBe("bun") + expect( + await getPackageManager( + path.resolve(__dirname, "../fixtures/project-bun-lock") + ) + ).toBe("bun") + expect( await getPackageManager(path.resolve(__dirname, "../fixtures/next")) ).toBe("pnpm")