mirror of
https://github.com/FranP-code/create-better-t-stack.git
synced 2025-10-12 23:52:15 +00:00
Adds automatic auth secret generation, improves environment file handling, creates client env files, adds trusted origins configuration, enhances README generation with better structure and instructions, and updates post-installation guidance with clearer steps.
53 lines
1.3 KiB
TypeScript
53 lines
1.3 KiB
TypeScript
import { cancel, confirm, isCancel, select } from "@clack/prompts";
|
|
import pc from "picocolors";
|
|
import type { PackageManager } from "../types";
|
|
import { getUserPkgManager } from "../utils/get-package-manager";
|
|
|
|
export async function getPackageManagerChoice(
|
|
packageManager?: PackageManager,
|
|
): Promise<PackageManager> {
|
|
if (packageManager !== undefined) return packageManager;
|
|
|
|
const detectedPackageManager = getUserPkgManager();
|
|
const useDetected = await confirm({
|
|
message: `Use ${detectedPackageManager} as your package manager?`,
|
|
});
|
|
|
|
if (isCancel(useDetected)) {
|
|
cancel(pc.red("Operation cancelled"));
|
|
process.exit(0);
|
|
}
|
|
|
|
if (useDetected) return detectedPackageManager;
|
|
|
|
const response = await select<PackageManager>({
|
|
message: "Which package manager would you like to use?",
|
|
options: [
|
|
{ value: "npm", label: "npm", hint: "Node Package Manager" },
|
|
{
|
|
value: "pnpm",
|
|
label: "pnpm",
|
|
hint: "Fast, disk space efficient package manager",
|
|
},
|
|
{
|
|
value: "yarn",
|
|
label: "yarn",
|
|
hint: "Fast, reliable, and secure dependency management",
|
|
},
|
|
{
|
|
value: "bun",
|
|
label: "bun",
|
|
hint: "All-in-one JavaScript runtime & toolkit",
|
|
},
|
|
],
|
|
initialValue: "bun",
|
|
});
|
|
|
|
if (isCancel(response)) {
|
|
cancel(pc.red("Operation cancelled"));
|
|
process.exit(0);
|
|
}
|
|
|
|
return response;
|
|
}
|