create-n4-app
Version:
Create Next.js app with the n4 stack
31 lines (30 loc) • 1.54 kB
JavaScript
import { TEMPLATE_PKG } from "../../utils/consts.js";
import fs from "fs-extra";
import path from "path";
import chalk from "chalk";
import { createOAuthSecret, packageInstaller, } from "../../utils/packageInstaller.js";
const OAuthInstaller = async (packageManger) => {
console.log(chalk.bold("☕ Installing Auth.js..."));
await packageInstaller({
packageManger: packageManger.depn,
installCmd: packageManger.depn === "npm" ? "i" : "add",
packages: ["next-auth@beta"],
});
await createOAuthSecret(packageManger);
const oAuthTemplateDir = path.join(TEMPLATE_PKG, "authjs", "oAuth");
await fs.copy(path.join(oAuthTemplateDir, "api-route"), path.join(process.cwd(), "app"));
await fs.copyFile(path.join(oAuthTemplateDir, "middleware.ts"), path.join(process.cwd(), "middleware.ts"));
await fs.copyFile(path.join(oAuthTemplateDir, "auth.ts"), path.join(process.cwd(), "auth.ts"));
const existingEnv = await fs.pathExists(path.join(process.cwd(), ".env.local"));
if (!existingEnv) {
await fs.writeFile("env.local", `AUTH_GOOGLE_ID= \nAUTH_GOOGLE_SECRET=`);
}
else {
const existingEnvContent = await fs.readFile(path.join(process.cwd(), ".env.local"), "utf8");
if (!existingEnvContent.includes("AUTH_GOOGLE_ID=") ||
!existingEnvContent.includes("AUTH_GOOGLE_SECRET=")) {
await fs.appendFile(path.join(process.cwd(), ".env.local"), "\nAUTH_GOOGLE_ID= \nAUTH_GOOGLE_SECRET=");
}
}
};
export default OAuthInstaller;