mirror of
https://github.com/FranP-code/create-better-t-stack.git
synced 2025-10-12 23:52:15 +00:00
add unused var, import lint rule
This commit is contained in:
@@ -8,7 +8,7 @@ import { setupTauri } from "./tauri-setup";
|
|||||||
import type { ProjectConfig } from "../types";
|
import type { ProjectConfig } from "../types";
|
||||||
|
|
||||||
export async function setupAddons(config: ProjectConfig) {
|
export async function setupAddons(config: ProjectConfig) {
|
||||||
const { projectName, addons, frontend, projectDir } = config;
|
const { addons, frontend, projectDir } = config;
|
||||||
const hasReactWebFrontend =
|
const hasReactWebFrontend =
|
||||||
frontend.includes("react-router") || frontend.includes("tanstack-router");
|
frontend.includes("react-router") || frontend.includes("tanstack-router");
|
||||||
const hasNuxtFrontend = frontend.includes("nuxt");
|
const hasNuxtFrontend = frontend.includes("nuxt");
|
||||||
|
|||||||
@@ -156,7 +156,7 @@ export async function setupApi(config: ProjectConfig): Promise<void> {
|
|||||||
devDependencies: reactQueryDevDeps,
|
devDependencies: reactQueryDevDeps,
|
||||||
projectDir: webDir,
|
projectDir: webDir,
|
||||||
});
|
});
|
||||||
} catch (error) {}
|
} catch (_error) {}
|
||||||
} else {
|
} else {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -169,7 +169,7 @@ export async function setupApi(config: ProjectConfig): Promise<void> {
|
|||||||
dependencies: reactQueryDeps,
|
dependencies: reactQueryDeps,
|
||||||
projectDir: nativeDir,
|
projectDir: nativeDir,
|
||||||
});
|
});
|
||||||
} catch (error) {}
|
} catch (_error) {}
|
||||||
} else {
|
} else {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -190,7 +190,7 @@ export async function setupApi(config: ProjectConfig): Promise<void> {
|
|||||||
devDependencies: solidQueryDevDeps,
|
devDependencies: solidQueryDevDeps,
|
||||||
projectDir: webDir,
|
projectDir: webDir,
|
||||||
});
|
});
|
||||||
} catch (error) {}
|
} catch (_error) {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -212,7 +212,7 @@ export async function setupApi(config: ProjectConfig): Promise<void> {
|
|||||||
dependencies: webDepsToAdd,
|
dependencies: webDepsToAdd,
|
||||||
projectDir: webDir,
|
projectDir: webDir,
|
||||||
});
|
});
|
||||||
} catch (error) {}
|
} catch (_error) {}
|
||||||
} else {
|
} else {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -225,7 +225,7 @@ export async function setupApi(config: ProjectConfig): Promise<void> {
|
|||||||
dependencies: ["convex"],
|
dependencies: ["convex"],
|
||||||
projectDir: nativeDir,
|
projectDir: nativeDir,
|
||||||
});
|
});
|
||||||
} catch (error) {}
|
} catch (_error) {}
|
||||||
} else {
|
} else {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -248,7 +248,7 @@ export async function setupApi(config: ProjectConfig): Promise<void> {
|
|||||||
await fs.writeJson(pkgJsonPath, pkgJson, { spaces: 2 });
|
await fs.writeJson(pkgJsonPath, pkgJson, { spaces: 2 });
|
||||||
} else {
|
} else {
|
||||||
}
|
}
|
||||||
} catch (error) {}
|
} catch (_error) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
if (webDirExists) {
|
if (webDirExists) {
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import type { ProjectConfig } from "../types";
|
|||||||
import { addPackageDependency } from "../utils/add-package-deps";
|
import { addPackageDependency } from "../utils/add-package-deps";
|
||||||
|
|
||||||
export async function setupAuth(config: ProjectConfig): Promise<void> {
|
export async function setupAuth(config: ProjectConfig): Promise<void> {
|
||||||
const { projectName, auth, frontend, backend, projectDir } = config;
|
const { auth, frontend, backend, projectDir } = config;
|
||||||
if (backend === "convex" || !auth) {
|
if (backend === "convex" || !auth) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import type { ProjectConfig } from "../types";
|
|||||||
export async function setupBackendDependencies(
|
export async function setupBackendDependencies(
|
||||||
config: ProjectConfig,
|
config: ProjectConfig,
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
const { projectName, backend, runtime, api, projectDir } = config;
|
const { backend, runtime, api, projectDir } = config;
|
||||||
|
|
||||||
if (backend === "convex") {
|
if (backend === "convex") {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -405,7 +405,7 @@ function generateScriptsList(
|
|||||||
packageManagerRunCmd: string,
|
packageManagerRunCmd: string,
|
||||||
database: ProjectDatabase,
|
database: ProjectDatabase,
|
||||||
orm: ProjectOrm,
|
orm: ProjectOrm,
|
||||||
auth: boolean,
|
_auth: boolean,
|
||||||
hasNative: boolean,
|
hasNative: boolean,
|
||||||
addons: ProjectAddons[],
|
addons: ProjectAddons[],
|
||||||
backend: string,
|
backend: string,
|
||||||
|
|||||||
@@ -56,17 +56,8 @@ async function addEnvVariablesToFile(
|
|||||||
export async function setupEnvironmentVariables(
|
export async function setupEnvironmentVariables(
|
||||||
config: ProjectConfig,
|
config: ProjectConfig,
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
const {
|
const { backend, frontend, database, auth, examples, dbSetup, projectDir } =
|
||||||
projectName,
|
config;
|
||||||
backend,
|
|
||||||
frontend,
|
|
||||||
database,
|
|
||||||
orm,
|
|
||||||
auth,
|
|
||||||
examples,
|
|
||||||
dbSetup,
|
|
||||||
projectDir,
|
|
||||||
} = config;
|
|
||||||
|
|
||||||
const hasReactRouter = frontend.includes("react-router");
|
const hasReactRouter = frontend.includes("react-router");
|
||||||
const hasTanStackRouter = frontend.includes("tanstack-router");
|
const hasTanStackRouter = frontend.includes("tanstack-router");
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import type { ProjectConfig } from "../types";
|
|||||||
import { addPackageDependency } from "../utils/add-package-deps";
|
import { addPackageDependency } from "../utils/add-package-deps";
|
||||||
|
|
||||||
export async function setupExamples(config: ProjectConfig): Promise<void> {
|
export async function setupExamples(config: ProjectConfig): Promise<void> {
|
||||||
const { projectName, examples, frontend, backend, projectDir } = config;
|
const { examples, frontend, backend, projectDir } = config;
|
||||||
|
|
||||||
if (
|
if (
|
||||||
backend === "convex" ||
|
backend === "convex" ||
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ async function runBiomeCheck(
|
|||||||
})`${packageManager} biome check --write .`;
|
})`${packageManager} biome check --write .`;
|
||||||
|
|
||||||
s.stop("Biome check completed successfully");
|
s.stop("Biome check completed successfully");
|
||||||
} catch (error) {
|
} catch (_error) {
|
||||||
s.stop(pc.yellow("Biome check encountered issues"));
|
s.stop(pc.yellow("Biome check encountered issues"));
|
||||||
log.warn(pc.yellow("Some files may need manual formatting"));
|
log.warn(pc.yellow("Some files may need manual formatting"));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ async function checkAtlasCLI(): Promise<boolean> {
|
|||||||
: pc.yellow("MongoDB Atlas CLI not found"),
|
: pc.yellow("MongoDB Atlas CLI not found"),
|
||||||
);
|
);
|
||||||
return exists;
|
return exists;
|
||||||
} catch (error) {
|
} catch (_error) {
|
||||||
s.stop(pc.red("Error checking for MongoDB Atlas CLI"));
|
s.stop(pc.red("Error checking for MongoDB Atlas CLI"));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -106,7 +106,7 @@ async function writeEnvFile(projectDir: string, config?: MongoDBConfig) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
await fs.writeFile(envPath, envContent.trim());
|
await fs.writeFile(envPath, envContent.trim());
|
||||||
} catch (error) {
|
} catch (_error) {
|
||||||
consola.error("Failed to update environment configuration");
|
consola.error("Failed to update environment configuration");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -130,7 +130,7 @@ ${pc.green("MongoDB Atlas Manual Setup Instructions:")}
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function setupMongoDBAtlas(config: ProjectConfig) {
|
export async function setupMongoDBAtlas(config: ProjectConfig) {
|
||||||
const { projectName, projectDir } = config;
|
const { projectDir } = config;
|
||||||
const mainSpinner = spinner();
|
const mainSpinner = spinner();
|
||||||
mainSpinner.start("Setting up MongoDB Atlas");
|
mainSpinner.start("Setting up MongoDB Atlas");
|
||||||
|
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ async function authenticateWithNeon(packageManager: ProjectPackageManager) {
|
|||||||
);
|
);
|
||||||
log.success("Authenticated with Neon successfully!");
|
log.success("Authenticated with Neon successfully!");
|
||||||
return true;
|
return true;
|
||||||
} catch (error) {
|
} catch (_error) {
|
||||||
consola.error(pc.red("Failed to authenticate with Neon"));
|
consola.error(pc.red("Failed to authenticate with Neon"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -113,7 +113,7 @@ async function createNeonProject(
|
|||||||
pc.red("Failed to extract connection information from response"),
|
pc.red("Failed to extract connection information from response"),
|
||||||
);
|
);
|
||||||
return null;
|
return null;
|
||||||
} catch (error) {
|
} catch (_error) {
|
||||||
consola.error(pc.red("Failed to create Neon project"));
|
consola.error(pc.red("Failed to create Neon project"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -144,7 +144,7 @@ DATABASE_URL="your_connection_string"`);
|
|||||||
import type { ProjectConfig } from "../types";
|
import type { ProjectConfig } from "../types";
|
||||||
|
|
||||||
export async function setupNeonPostgres(config: ProjectConfig): Promise<void> {
|
export async function setupNeonPostgres(config: ProjectConfig): Promise<void> {
|
||||||
const { projectName, packageManager, projectDir } = config;
|
const { packageManager, projectDir } = config;
|
||||||
const setupSpinner = spinner();
|
const setupSpinner = spinner();
|
||||||
setupSpinner.start("Setting up Neon PostgreSQL");
|
setupSpinner.start("Setting up Neon PostgreSQL");
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ export function displayPostInstallInstructions(
|
|||||||
) {
|
) {
|
||||||
const {
|
const {
|
||||||
database,
|
database,
|
||||||
projectName,
|
|
||||||
relativePath,
|
relativePath,
|
||||||
packageManager,
|
packageManager,
|
||||||
depsInstalled,
|
depsInstalled,
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ async function writeEnvFile(projectDir: string, config?: PrismaConfig) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
await fs.writeFile(envPath, envContent.trim());
|
await fs.writeFile(envPath, envContent.trim());
|
||||||
} catch (error) {
|
} catch (_error) {
|
||||||
consola.error("Failed to update environment configuration");
|
consola.error("Failed to update environment configuration");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -143,7 +143,7 @@ export default prisma;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
} catch (error) {
|
} catch (_error) {
|
||||||
log.warn(
|
log.warn(
|
||||||
pc.yellow("Could not add Prisma Accelerate extension automatically"),
|
pc.yellow("Could not add Prisma Accelerate extension automatically"),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -176,7 +176,7 @@ async function updateRootPackageJson(
|
|||||||
cwd: projectDir,
|
cwd: projectDir,
|
||||||
});
|
});
|
||||||
packageJson.packageManager = `${options.packageManager}@${stdout.trim()}`;
|
packageJson.packageManager = `${options.packageManager}@${stdout.trim()}`;
|
||||||
} catch (e) {
|
} catch (_e) {
|
||||||
log.warn(`Could not determine ${options.packageManager} version.`);
|
log.warn(`Could not determine ${options.packageManager} version.`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import type { ProjectBackend, ProjectConfig } from "../types";
|
|||||||
import { addPackageDependency } from "../utils/add-package-deps";
|
import { addPackageDependency } from "../utils/add-package-deps";
|
||||||
|
|
||||||
export async function setupRuntime(config: ProjectConfig): Promise<void> {
|
export async function setupRuntime(config: ProjectConfig): Promise<void> {
|
||||||
const { projectName, runtime, backend, projectDir } = config;
|
const { runtime, backend, projectDir } = config;
|
||||||
|
|
||||||
if (backend === "convex" || backend === "next" || runtime === "none") {
|
if (backend === "convex" || backend === "next" || runtime === "none") {
|
||||||
return;
|
return;
|
||||||
@@ -25,7 +25,7 @@ export async function setupRuntime(config: ProjectConfig): Promise<void> {
|
|||||||
|
|
||||||
async function setupBunRuntime(
|
async function setupBunRuntime(
|
||||||
serverDir: string,
|
serverDir: string,
|
||||||
backend: ProjectBackend,
|
_backend: ProjectBackend,
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
const packageJsonPath = path.join(serverDir, "package.json");
|
const packageJsonPath = path.join(serverDir, "package.json");
|
||||||
if (!(await fs.pathExists(packageJsonPath))) return;
|
if (!(await fs.pathExists(packageJsonPath))) return;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import type { ProjectConfig } from "../types";
|
|||||||
import { getPackageExecutionCommand } from "../utils/get-package-execution-command";
|
import { getPackageExecutionCommand } from "../utils/get-package-execution-command";
|
||||||
|
|
||||||
export async function setupStarlight(config: ProjectConfig): Promise<void> {
|
export async function setupStarlight(config: ProjectConfig): Promise<void> {
|
||||||
const { projectName, packageManager, projectDir } = config;
|
const { packageManager, projectDir } = config;
|
||||||
const s = spinner();
|
const s = spinner();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import { getPackageExecutionCommand } from "../utils/get-package-execution-comma
|
|||||||
import type { ProjectConfig } from "../types";
|
import type { ProjectConfig } from "../types";
|
||||||
|
|
||||||
export async function setupTauri(config: ProjectConfig): Promise<void> {
|
export async function setupTauri(config: ProjectConfig): Promise<void> {
|
||||||
const { projectName, packageManager, frontend, projectDir } = config;
|
const { packageManager, frontend, projectDir } = config;
|
||||||
const s = spinner();
|
const s = spinner();
|
||||||
const clientPackageDir = path.join(projectDir, "apps/web");
|
const clientPackageDir = path.join(projectDir, "apps/web");
|
||||||
|
|
||||||
@@ -40,11 +40,11 @@ export async function setupTauri(config: ProjectConfig): Promise<void> {
|
|||||||
await fs.writeJson(clientPackageJsonPath, packageJson, { spaces: 2 });
|
await fs.writeJson(clientPackageJsonPath, packageJson, { spaces: 2 });
|
||||||
}
|
}
|
||||||
|
|
||||||
const hasTanstackRouter = frontend.includes("tanstack-router");
|
const _hasTanstackRouter = frontend.includes("tanstack-router");
|
||||||
const hasReactRouter = frontend.includes("react-router");
|
const hasReactRouter = frontend.includes("react-router");
|
||||||
const hasNuxt = frontend.includes("nuxt");
|
const hasNuxt = frontend.includes("nuxt");
|
||||||
const hasSvelte = frontend.includes("svelte");
|
const hasSvelte = frontend.includes("svelte");
|
||||||
const hasSolid = frontend.includes("solid");
|
const _hasSolid = frontend.includes("solid");
|
||||||
const hasNext = frontend.includes("next");
|
const hasNext = frontend.includes("next");
|
||||||
|
|
||||||
const devUrl =
|
const devUrl =
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ async function processAndCopyFiles(
|
|||||||
} else {
|
} else {
|
||||||
await fs.copy(srcPath, destPath, { overwrite: true });
|
await fs.copy(srcPath, destPath, { overwrite: true });
|
||||||
}
|
}
|
||||||
} catch (error) {}
|
} catch (_error) {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -72,7 +72,7 @@ export async function setupFrontendTemplates(
|
|||||||
const hasSolidWeb = context.frontend.includes("solid");
|
const hasSolidWeb = context.frontend.includes("solid");
|
||||||
const hasNativeWind = context.frontend.includes("native-nativewind");
|
const hasNativeWind = context.frontend.includes("native-nativewind");
|
||||||
const hasUnistyles = context.frontend.includes("native-unistyles");
|
const hasUnistyles = context.frontend.includes("native-unistyles");
|
||||||
const hasNative = hasNativeWind || hasUnistyles;
|
const _hasNative = hasNativeWind || hasUnistyles;
|
||||||
const isConvex = context.backend === "convex";
|
const isConvex = context.backend === "convex";
|
||||||
|
|
||||||
if (hasReactWeb || hasNuxtWeb || hasSvelteWeb || hasSolidWeb) {
|
if (hasReactWeb || hasNuxtWeb || hasSvelteWeb || hasSolidWeb) {
|
||||||
@@ -677,7 +677,7 @@ export async function setupExamplesTemplate(
|
|||||||
await fs.copy(srcPath, destPath, { overwrite: false });
|
await fs.copy(srcPath, destPath, { overwrite: false });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (error) {}
|
} catch (_error) {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ async function loginToTurso() {
|
|||||||
await $`turso auth login`;
|
await $`turso auth login`;
|
||||||
s.stop("Logged in to Turso successfully!");
|
s.stop("Logged in to Turso successfully!");
|
||||||
return true;
|
return true;
|
||||||
} catch (error) {
|
} catch (_error) {
|
||||||
s.stop(pc.red("Failed to log in to Turso"));
|
s.stop(pc.red("Failed to log in to Turso"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -166,7 +166,7 @@ async function createTursoDatabase(dbName: string, groupName: string | null) {
|
|||||||
dbUrl: dbUrl.trim(),
|
dbUrl: dbUrl.trim(),
|
||||||
authToken: authToken.trim(),
|
authToken: authToken.trim(),
|
||||||
};
|
};
|
||||||
} catch (error) {
|
} catch (_error) {
|
||||||
s.stop(pc.red("Failed to retrieve database connection details"));
|
s.stop(pc.red("Failed to retrieve database connection details"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -198,15 +198,15 @@ DATABASE_AUTH_TOKEN=your_auth_token`);
|
|||||||
import type { ProjectConfig } from "../types";
|
import type { ProjectConfig } from "../types";
|
||||||
|
|
||||||
export async function setupTurso(config: ProjectConfig): Promise<void> {
|
export async function setupTurso(config: ProjectConfig): Promise<void> {
|
||||||
const { projectName, orm, projectDir } = config;
|
const { orm, projectDir } = config;
|
||||||
const isDrizzle = orm === "drizzle";
|
const _isDrizzle = orm === "drizzle";
|
||||||
const setupSpinner = spinner();
|
const setupSpinner = spinner();
|
||||||
setupSpinner.start("Setting up Turso database");
|
setupSpinner.start("Setting up Turso database");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const platform = os.platform();
|
const platform = os.platform();
|
||||||
const isMac = platform === "darwin";
|
const isMac = platform === "darwin";
|
||||||
const isLinux = platform === "linux";
|
const _isLinux = platform === "linux";
|
||||||
const isWindows = platform === "win32";
|
const isWindows = platform === "win32";
|
||||||
|
|
||||||
if (isWindows) {
|
if (isWindows) {
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ import yargs from "yargs";
|
|||||||
import { hideBin } from "yargs/helpers";
|
import { hideBin } from "yargs/helpers";
|
||||||
import { DEFAULT_CONFIG } from "./constants";
|
import { DEFAULT_CONFIG } from "./constants";
|
||||||
import { createProject } from "./helpers/create-project";
|
import { createProject } from "./helpers/create-project";
|
||||||
import { setupDatabase } from "./helpers/db-setup";
|
|
||||||
import { gatherConfig } from "./prompts/config-prompts";
|
import { gatherConfig } from "./prompts/config-prompts";
|
||||||
import { getProjectName } from "./prompts/project-name";
|
import { getProjectName } from "./prompts/project-name";
|
||||||
import type {
|
import type {
|
||||||
@@ -632,11 +631,11 @@ function processAndValidateFlags(
|
|||||||
config.database ?? (options.yes ? DEFAULT_CONFIG.database : undefined);
|
config.database ?? (options.yes ? DEFAULT_CONFIG.database : undefined);
|
||||||
const effectiveOrm =
|
const effectiveOrm =
|
||||||
config.orm ?? (options.yes ? DEFAULT_CONFIG.orm : undefined);
|
config.orm ?? (options.yes ? DEFAULT_CONFIG.orm : undefined);
|
||||||
const effectiveAuth =
|
const _effectiveAuth =
|
||||||
config.auth ?? (options.yes ? DEFAULT_CONFIG.auth : undefined);
|
config.auth ?? (options.yes ? DEFAULT_CONFIG.auth : undefined);
|
||||||
const effectiveDbSetup =
|
const _effectiveDbSetup =
|
||||||
config.dbSetup ?? (options.yes ? DEFAULT_CONFIG.dbSetup : undefined);
|
config.dbSetup ?? (options.yes ? DEFAULT_CONFIG.dbSetup : undefined);
|
||||||
const effectiveExamples =
|
const _effectiveExamples =
|
||||||
config.examples ?? (options.yes ? DEFAULT_CONFIG.examples : undefined);
|
config.examples ?? (options.yes ? DEFAULT_CONFIG.examples : undefined);
|
||||||
const effectiveFrontend =
|
const effectiveFrontend =
|
||||||
config.frontend ?? (options.yes ? DEFAULT_CONFIG.frontend : undefined);
|
config.frontend ?? (options.yes ? DEFAULT_CONFIG.frontend : undefined);
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { cancel, confirm, isCancel, log } from "@clack/prompts";
|
import { cancel, confirm, isCancel } from "@clack/prompts";
|
||||||
import pc from "picocolors";
|
import pc from "picocolors";
|
||||||
import { DEFAULT_CONFIG } from "../constants";
|
import { DEFAULT_CONFIG } from "../constants";
|
||||||
import type { ProjectBackend } from "../types";
|
import type { ProjectBackend } from "../types";
|
||||||
|
|||||||
@@ -51,8 +51,7 @@ export async function gatherConfig(
|
|||||||
): Promise<ProjectConfig> {
|
): Promise<ProjectConfig> {
|
||||||
const result = await group<PromptGroupResults>(
|
const result = await group<PromptGroupResults>(
|
||||||
{
|
{
|
||||||
frontend: ({ results }) =>
|
frontend: () => getFrontendChoice(flags.frontend, flags.backend),
|
||||||
getFrontendChoice(flags.frontend, flags.backend),
|
|
||||||
backend: ({ results }) =>
|
backend: ({ results }) =>
|
||||||
getBackendFrameworkChoice(flags.backend, results.frontend),
|
getBackendFrameworkChoice(flags.backend, results.frontend),
|
||||||
runtime: ({ results }) =>
|
runtime: ({ results }) =>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { cancel, isCancel, log, select } from "@clack/prompts";
|
import { cancel, isCancel, select } from "@clack/prompts";
|
||||||
import pc from "picocolors";
|
import pc from "picocolors";
|
||||||
import { DEFAULT_CONFIG } from "../constants";
|
import { DEFAULT_CONFIG } from "../constants";
|
||||||
import type { ProjectBackend, ProjectDatabase, ProjectOrm } from "../types";
|
import type { ProjectBackend, ProjectDatabase, ProjectOrm } from "../types";
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { cancel, isCancel, select } from "@clack/prompts";
|
import { cancel, isCancel, select } from "@clack/prompts";
|
||||||
import pc from "picocolors";
|
import pc from "picocolors";
|
||||||
import type { ProjectPackageManager, ProjectRuntime } from "../types";
|
import type { ProjectPackageManager } from "../types";
|
||||||
import { getUserPkgManager } from "../utils/get-package-manager";
|
import { getUserPkgManager } from "../utils/get-package-manager";
|
||||||
|
|
||||||
export async function getPackageManagerChoice(
|
export async function getPackageManagerChoice(
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
"module": "ESNext",
|
"module": "ESNext",
|
||||||
"moduleResolution": "bundler",
|
"moduleResolution": "bundler",
|
||||||
"esModuleInterop": true,
|
"esModuleInterop": true,
|
||||||
|
"verbatimModuleSyntax": true,
|
||||||
"strict": true,
|
"strict": true,
|
||||||
"skipLibCheck": true,
|
"skipLibCheck": true,
|
||||||
"outDir": "dist",
|
"outDir": "dist",
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ export default function SponsorsSection() {
|
|||||||
href="https://github.com/sponsors/AmanVarshney01"
|
href="https://github.com/sponsors/AmanVarshney01"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
className="mt-4 inline-flex items-center gap-2 rounded-lg border border-primary bg-transparent px-4 py-2 font-mono text-base text-primary shadow-md transition-all hover:bg-primary hover:text-primary-foreground focus-visible:outline focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2"
|
className="mt-4 inline-flex items-center gap-2 rounded-lg border border-primary bg-transparent px-4 py-2 font-mono text-base text-primary shadow-md transition-all hover:bg-primary hover:text-primary-foreground focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2"
|
||||||
>
|
>
|
||||||
<svg
|
<svg
|
||||||
className="h-4 w-4"
|
className="h-4 w-4"
|
||||||
@@ -116,7 +116,7 @@ export default function SponsorsSection() {
|
|||||||
href="https://github.com/sponsors/AmanVarshney01"
|
href="https://github.com/sponsors/AmanVarshney01"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
className="inline-flex items-center gap-3 rounded-xl border border-primary bg-transparent px-6 py-3 font-mono font-semibold text-lg text-primary shadow-md transition-all duration-300 ease-in-out hover:bg-primary hover:text-primary-foreground focus-visible:outline focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2"
|
className="inline-flex items-center gap-3 rounded-xl border border-primary bg-transparent px-6 py-3 font-mono font-semibold text-lg text-primary shadow-md transition-all duration-300 ease-in-out hover:bg-primary hover:text-primary-foreground focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2"
|
||||||
>
|
>
|
||||||
<svg className="h-5 w-5" fill="currentColor" viewBox="0 0 20 20">
|
<svg className="h-5 w-5" fill="currentColor" viewBox="0 0 20 20">
|
||||||
<title>Heart Icon</title>
|
<title>Heart Icon</title>
|
||||||
|
|||||||
@@ -1935,7 +1935,7 @@ const StackBuilder = () => {
|
|||||||
href="https://github.com/sponsors/AmanVarshney01"
|
href="https://github.com/sponsors/AmanVarshney01"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
className="mt-4 inline-flex items-center gap-2 rounded-lg bg-primary px-6 py-3 font-mono text-lg text-primary-foreground shadow-lg transition-all hover:bg-primary/90 hover:shadow-xl focus-visible:outline focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2"
|
className="mt-4 inline-flex items-center gap-2 rounded-lg bg-primary px-6 py-3 font-mono text-lg text-primary-foreground shadow-lg transition-all hover:bg-primary/90 hover:shadow-xl focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2"
|
||||||
>
|
>
|
||||||
<svg
|
<svg
|
||||||
className="h-6 w-6"
|
className="h-6 w-6"
|
||||||
@@ -2008,7 +2008,7 @@ const StackBuilder = () => {
|
|||||||
href="https://github.com/sponsors/AmanVarshney01"
|
href="https://github.com/sponsors/AmanVarshney01"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
className="inline-flex items-center gap-3 rounded-xl border border-primary bg-transparent px-6 py-3 font-mono font-semibold text-lg text-primary shadow-md transition-all duration-300 ease-in-out hover:bg-primary hover:text-primary-foreground focus-visible:outline focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2"
|
className="inline-flex items-center gap-3 rounded-xl border border-primary bg-transparent px-6 py-3 font-mono font-semibold text-lg text-primary shadow-md transition-all duration-300 ease-in-out hover:bg-primary hover:text-primary-foreground focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2"
|
||||||
>
|
>
|
||||||
<svg
|
<svg
|
||||||
className="h-5 w-5"
|
className="h-5 w-5"
|
||||||
|
|||||||
@@ -38,6 +38,11 @@
|
|||||||
"functions": ["clsx", "cva", "cn"]
|
"functions": ["clsx", "cva", "cn"]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"correctness": {
|
||||||
|
"noUnusedImports": "error",
|
||||||
|
"noUnusedLabels": "error",
|
||||||
|
"noUnusedVariables": "error"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ignore": ["template"]
|
"ignore": ["template"]
|
||||||
|
|||||||
Reference in New Issue
Block a user