Squash merge beta into main

This commit is contained in:
Aman Varshney
2025-04-19 17:30:59 +05:30
parent 724d32b913
commit 0de49d4e45
27 changed files with 113 additions and 130 deletions

View File

@@ -8,7 +8,7 @@ import { setupTauri } from "./tauri-setup";
import type { ProjectConfig } from "../types";
export async function setupAddons(config: ProjectConfig) {
const { projectName, addons, packageManager, frontend } = config;
const { projectName, addons, frontend } = config;
const projectDir = path.resolve(process.cwd(), projectName);
const hasWebFrontend =
frontend.includes("react-router") || frontend.includes("tanstack-router");

View File

@@ -1,9 +1,8 @@
import * as path from "node:path";
import type { ProjectApi, ProjectConfig } from "../types";
import type { ProjectConfig } from "../types";
import { addPackageDependency } from "../utils/add-package-deps";
export async function setupApi(config: ProjectConfig): Promise<void> {
if (config.api === "none") return;
const { api, projectName } = config;
const projectDir = path.resolve(process.cwd(), projectName);
const webDir = path.join(projectDir, "apps/web");

View File

@@ -1,7 +1,6 @@
import path from "node:path";
import consola from "consola";
import pc from "picocolors";
import type { ProjectFrontend } from "../types";
import { addPackageDependency } from "../utils/add-package-deps";
export function generateAuthSecret(length = 32): string {

View File

@@ -1,6 +1,5 @@
import path from "node:path";
import type { AvailableDependencies } from "../constants";
import type { ProjectBackend, ProjectRuntime } from "../types";
import { addPackageDependency } from "../utils/add-package-deps";
import type { ProjectConfig } from "../types";
@@ -8,7 +7,7 @@ import type { ProjectConfig } from "../types";
export async function setupBackendDependencies(
config: ProjectConfig,
): Promise<void> {
const { projectName, backend, runtime } = config;
const { projectName, backend, runtime, api } = config;
const projectDir = path.resolve(process.cwd(), projectName);
const framework = backend;
const serverDir = path.join(projectDir, "apps/server");
@@ -17,15 +16,20 @@ export async function setupBackendDependencies(
const devDependencies: AvailableDependencies[] = [];
if (framework === "hono") {
dependencies.push("hono", "@hono/trpc-server");
dependencies.push("hono");
if (api === "trpc") {
dependencies.push("@hono/trpc-server");
}
if (runtime === "node") {
dependencies.push("@hono/node-server");
devDependencies.push("tsx", "@types/node");
}
} else if (framework === "elysia") {
dependencies.push("elysia", "@elysiajs/cors", "@elysiajs/trpc");
dependencies.push("elysia", "@elysiajs/cors");
if (api === "trpc") {
dependencies.push("@elysiajs/trpc");
}
if (runtime === "node") {
dependencies.push("@elysiajs/node");
devDependencies.push("tsx", "@types/node");

View File

@@ -1,13 +1,8 @@
import path from "node:path";
import { log, spinner } from "@clack/prompts";
import { spinner } from "@clack/prompts";
import consola from "consola";
import fs from "fs-extra";
import pc from "picocolors";
import type {
ProjectDatabase,
ProjectOrm,
ProjectPackageManager,
} from "../types";
import { addPackageDependency } from "../utils/add-package-deps";
import { setupMongoDBAtlas } from "./mongodb-atlas-setup";
import { setupPrismaPostgres } from "./prisma-postgres-setup";
@@ -18,7 +13,7 @@ import { setupNeonPostgres } from "./neon-setup";
import type { ProjectConfig } from "../types";
export async function setupDatabase(config: ProjectConfig): Promise<void> {
const { projectName, database, orm, packageManager, dbSetup } = config;
const { projectName, database, orm, dbSetup } = config;
const projectDir = path.resolve(process.cwd(), projectName);
const s = spinner();
const serverDir = path.join(projectDir, "apps/server");

View File

@@ -1,23 +1,9 @@
import path from "node:path";
import fs from "fs-extra";
import { PKG_ROOT } from "../constants";
import type {
ProjectBackend,
ProjectConfig,
ProjectFrontend,
ProjectOrm,
} from "../types";
import type { ProjectConfig } from "../types";
import { addPackageDependency } from "../utils/add-package-deps";
export async function setupExamples(config: ProjectConfig): Promise<void> {
const {
projectName,
examples,
orm,
auth,
backend,
frontend = ["tanstack-router"],
} = config;
const { projectName, examples } = config;
const projectDir = path.resolve(process.cwd(), projectName);
if (examples.includes("ai")) {

View File

@@ -1,14 +1,6 @@
import { consola } from "consola";
import pc from "picocolors";
import type {
ProjectAddons,
ProjectDBSetup,
ProjectDatabase,
ProjectFrontend,
ProjectOrm,
ProjectPackageManager,
ProjectRuntime,
} from "../types";
import type { ProjectDatabase, ProjectOrm, ProjectRuntime } from "../types";
import { getPackageExecutionCommand } from "../utils/get-package-execution-command";
import type { ProjectConfig } from "../types";
@@ -25,7 +17,6 @@ export function displayPostInstallInstructions(
addons,
runtime,
frontend,
dbSetup,
} = config;
const runCmd = packageManager === "npm" ? "npm run" : packageManager;
const cdCmd = `cd ${projectName}`;

View File

@@ -22,7 +22,6 @@ async function updateRootPackageJson(
const packageJson = await fs.readJson(rootPackageJsonPath);
packageJson.name = options.projectName;
// Define script sets
const turboScripts = {
dev: "turbo dev",
build: "turbo build",

View File

@@ -1,6 +1,6 @@
import path from "node:path";
import fs from "fs-extra";
import type { ProjectBackend, ProjectConfig, ProjectRuntime } from "../types";
import type { ProjectBackend, ProjectConfig } from "../types";
import { addPackageDependency } from "../utils/add-package-deps";
export async function setupRuntime(config: ProjectConfig): Promise<void> {

View File

@@ -89,29 +89,22 @@ export async function setupFrontendTemplates(
}
}
if (context.api !== "none") {
const webFramework = webFrontends[0];
const webFramework = webFrontends[0];
const apiWebBaseDir = path.join(
PKG_ROOT,
`templates/api/${context.api}/web/base`,
);
if (await fs.pathExists(apiWebBaseDir)) {
await processAndCopyFiles("**/*", apiWebBaseDir, webAppDir, context);
}
const apiWebBaseDir = path.join(
PKG_ROOT,
`templates/api/${context.api}/web/base`,
);
if (await fs.pathExists(apiWebBaseDir)) {
await processAndCopyFiles("**/*", apiWebBaseDir, webAppDir, context);
}
const apiWebFrameworkDir = path.join(
PKG_ROOT,
`templates/api/${context.api}/web/${webFramework}`,
);
if (await fs.pathExists(apiWebFrameworkDir)) {
await processAndCopyFiles(
"**/*",
apiWebFrameworkDir,
webAppDir,
context,
);
}
const apiWebFrameworkDir = path.join(
PKG_ROOT,
`templates/api/${context.api}/web/${webFramework}`,
);
if (await fs.pathExists(apiWebFrameworkDir)) {
await processAndCopyFiles("**/*", apiWebFrameworkDir, webAppDir, context);
}
}
@@ -124,21 +117,14 @@ export async function setupFrontendTemplates(
await processAndCopyFiles("**/*", nativeBaseDir, nativeAppDir, context);
}
if (context.api !== "none") {
const apiNativeSrcDir = path.join(
PKG_ROOT,
`templates/api/${context.api}/native`,
);
const apiNativeSrcDir = path.join(
PKG_ROOT,
`templates/api/${context.api}/native`,
);
if (await fs.pathExists(apiNativeSrcDir)) {
await processAndCopyFiles(
"**/*",
apiNativeSrcDir,
nativeAppDir,
context,
);
} else {
}
if (await fs.pathExists(apiNativeSrcDir)) {
await processAndCopyFiles("**/*", apiNativeSrcDir, nativeAppDir, context);
} else {
}
}
}
@@ -175,32 +161,25 @@ export async function setupBackendFramework(
);
}
if (context.api !== "none") {
const apiServerBaseDir = path.join(
PKG_ROOT,
`templates/api/${context.api}/server/base`,
);
if (await fs.pathExists(apiServerBaseDir)) {
await processAndCopyFiles(
"**/*",
apiServerBaseDir,
serverAppDir,
context,
);
}
const apiServerBaseDir = path.join(
PKG_ROOT,
`templates/api/${context.api}/server/base`,
);
if (await fs.pathExists(apiServerBaseDir)) {
await processAndCopyFiles("**/*", apiServerBaseDir, serverAppDir, context);
}
const apiServerFrameworkDir = path.join(
PKG_ROOT,
`templates/api/${context.api}/server/${context.backend}`,
const apiServerFrameworkDir = path.join(
PKG_ROOT,
`templates/api/${context.api}/server/${context.backend}`,
);
if (await fs.pathExists(apiServerFrameworkDir)) {
await processAndCopyFiles(
"**/*",
apiServerFrameworkDir,
serverAppDir,
context,
);
if (await fs.pathExists(apiServerFrameworkDir)) {
await processAndCopyFiles(
"**/*",
apiServerFrameworkDir,
serverAppDir,
context,
);
}
}
}