Files
create-better-t-stack/apps/cli/src/helpers/auth-setup.ts
2025-03-21 17:44:48 +05:30

45 lines
1.1 KiB
TypeScript

import path from "node:path";
import { log } from "@clack/prompts";
import pc from "picocolors";
import { addPackageDependency } from "../utils/add-package-deps";
export function generateAuthSecret(length = 32): string {
const characters =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
let result = "";
const charactersLength = characters.length;
for (let i = 0; i < length; i++) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
}
return result;
}
export async function setupAuth(
projectDir: string,
enableAuth: boolean,
): Promise<void> {
if (!enableAuth) {
return;
}
const serverDir = path.join(projectDir, "packages/server");
const clientDir = path.join(projectDir, "packages/client");
try {
addPackageDependency({
dependencies: ["better-auth"],
projectDir: serverDir,
});
addPackageDependency({
dependencies: ["better-auth"],
projectDir: clientDir,
});
} catch (error) {
log.error(pc.red("Failed to configure authentication"));
if (error instanceof Error) {
log.error(pc.red(error.message));
}
throw error;
}
}