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";
|
||||
|
||||
export async function setupAddons(config: ProjectConfig) {
|
||||
const { projectName, addons, frontend, projectDir } = config;
|
||||
const { addons, frontend, projectDir } = config;
|
||||
const hasReactWebFrontend =
|
||||
frontend.includes("react-router") || frontend.includes("tanstack-router");
|
||||
const hasNuxtFrontend = frontend.includes("nuxt");
|
||||
|
||||
@@ -156,7 +156,7 @@ export async function setupApi(config: ProjectConfig): Promise<void> {
|
||||
devDependencies: reactQueryDevDeps,
|
||||
projectDir: webDir,
|
||||
});
|
||||
} catch (error) {}
|
||||
} catch (_error) {}
|
||||
} else {
|
||||
}
|
||||
}
|
||||
@@ -169,7 +169,7 @@ export async function setupApi(config: ProjectConfig): Promise<void> {
|
||||
dependencies: reactQueryDeps,
|
||||
projectDir: nativeDir,
|
||||
});
|
||||
} catch (error) {}
|
||||
} catch (_error) {}
|
||||
} else {
|
||||
}
|
||||
}
|
||||
@@ -190,7 +190,7 @@ export async function setupApi(config: ProjectConfig): Promise<void> {
|
||||
devDependencies: solidQueryDevDeps,
|
||||
projectDir: webDir,
|
||||
});
|
||||
} catch (error) {}
|
||||
} catch (_error) {}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -212,7 +212,7 @@ export async function setupApi(config: ProjectConfig): Promise<void> {
|
||||
dependencies: webDepsToAdd,
|
||||
projectDir: webDir,
|
||||
});
|
||||
} catch (error) {}
|
||||
} catch (_error) {}
|
||||
} else {
|
||||
}
|
||||
}
|
||||
@@ -225,7 +225,7 @@ export async function setupApi(config: ProjectConfig): Promise<void> {
|
||||
dependencies: ["convex"],
|
||||
projectDir: nativeDir,
|
||||
});
|
||||
} catch (error) {}
|
||||
} catch (_error) {}
|
||||
} else {
|
||||
}
|
||||
}
|
||||
@@ -248,7 +248,7 @@ export async function setupApi(config: ProjectConfig): Promise<void> {
|
||||
await fs.writeJson(pkgJsonPath, pkgJson, { spaces: 2 });
|
||||
} else {
|
||||
}
|
||||
} catch (error) {}
|
||||
} catch (_error) {}
|
||||
};
|
||||
|
||||
if (webDirExists) {
|
||||
|
||||
@@ -6,7 +6,7 @@ import type { ProjectConfig } from "../types";
|
||||
import { addPackageDependency } from "../utils/add-package-deps";
|
||||
|
||||
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) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import type { ProjectConfig } from "../types";
|
||||
export async function setupBackendDependencies(
|
||||
config: ProjectConfig,
|
||||
): Promise<void> {
|
||||
const { projectName, backend, runtime, api, projectDir } = config;
|
||||
const { backend, runtime, api, projectDir } = config;
|
||||
|
||||
if (backend === "convex") {
|
||||
return;
|
||||
|
||||
@@ -405,7 +405,7 @@ function generateScriptsList(
|
||||
packageManagerRunCmd: string,
|
||||
database: ProjectDatabase,
|
||||
orm: ProjectOrm,
|
||||
auth: boolean,
|
||||
_auth: boolean,
|
||||
hasNative: boolean,
|
||||
addons: ProjectAddons[],
|
||||
backend: string,
|
||||
|
||||
@@ -56,17 +56,8 @@ async function addEnvVariablesToFile(
|
||||
export async function setupEnvironmentVariables(
|
||||
config: ProjectConfig,
|
||||
): Promise<void> {
|
||||
const {
|
||||
projectName,
|
||||
backend,
|
||||
frontend,
|
||||
database,
|
||||
orm,
|
||||
auth,
|
||||
examples,
|
||||
dbSetup,
|
||||
projectDir,
|
||||
} = config;
|
||||
const { backend, frontend, database, auth, examples, dbSetup, projectDir } =
|
||||
config;
|
||||
|
||||
const hasReactRouter = frontend.includes("react-router");
|
||||
const hasTanStackRouter = frontend.includes("tanstack-router");
|
||||
|
||||
@@ -5,7 +5,7 @@ import type { ProjectConfig } from "../types";
|
||||
import { addPackageDependency } from "../utils/add-package-deps";
|
||||
|
||||
export async function setupExamples(config: ProjectConfig): Promise<void> {
|
||||
const { projectName, examples, frontend, backend, projectDir } = config;
|
||||
const { examples, frontend, backend, projectDir } = config;
|
||||
|
||||
if (
|
||||
backend === "convex" ||
|
||||
|
||||
@@ -51,7 +51,7 @@ async function runBiomeCheck(
|
||||
})`${packageManager} biome check --write .`;
|
||||
|
||||
s.stop("Biome check completed successfully");
|
||||
} catch (error) {
|
||||
} catch (_error) {
|
||||
s.stop(pc.yellow("Biome check encountered issues"));
|
||||
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"),
|
||||
);
|
||||
return exists;
|
||||
} catch (error) {
|
||||
} catch (_error) {
|
||||
s.stop(pc.red("Error checking for MongoDB Atlas CLI"));
|
||||
return false;
|
||||
}
|
||||
@@ -106,7 +106,7 @@ async function writeEnvFile(projectDir: string, config?: MongoDBConfig) {
|
||||
}
|
||||
|
||||
await fs.writeFile(envPath, envContent.trim());
|
||||
} catch (error) {
|
||||
} catch (_error) {
|
||||
consola.error("Failed to update environment configuration");
|
||||
}
|
||||
}
|
||||
@@ -130,7 +130,7 @@ ${pc.green("MongoDB Atlas Manual Setup Instructions:")}
|
||||
}
|
||||
|
||||
export async function setupMongoDBAtlas(config: ProjectConfig) {
|
||||
const { projectName, projectDir } = config;
|
||||
const { projectDir } = config;
|
||||
const mainSpinner = spinner();
|
||||
mainSpinner.start("Setting up MongoDB Atlas");
|
||||
|
||||
|
||||
@@ -73,7 +73,7 @@ async function authenticateWithNeon(packageManager: ProjectPackageManager) {
|
||||
);
|
||||
log.success("Authenticated with Neon successfully!");
|
||||
return true;
|
||||
} catch (error) {
|
||||
} catch (_error) {
|
||||
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"),
|
||||
);
|
||||
return null;
|
||||
} catch (error) {
|
||||
} catch (_error) {
|
||||
consola.error(pc.red("Failed to create Neon project"));
|
||||
}
|
||||
}
|
||||
@@ -144,7 +144,7 @@ DATABASE_URL="your_connection_string"`);
|
||||
import type { ProjectConfig } from "../types";
|
||||
|
||||
export async function setupNeonPostgres(config: ProjectConfig): Promise<void> {
|
||||
const { projectName, packageManager, projectDir } = config;
|
||||
const { packageManager, projectDir } = config;
|
||||
const setupSpinner = spinner();
|
||||
setupSpinner.start("Setting up Neon PostgreSQL");
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@ export function displayPostInstallInstructions(
|
||||
) {
|
||||
const {
|
||||
database,
|
||||
projectName,
|
||||
relativePath,
|
||||
packageManager,
|
||||
depsInstalled,
|
||||
|
||||
@@ -93,7 +93,7 @@ async function writeEnvFile(projectDir: string, config?: PrismaConfig) {
|
||||
}
|
||||
|
||||
await fs.writeFile(envPath, envContent.trim());
|
||||
} catch (error) {
|
||||
} catch (_error) {
|
||||
consola.error("Failed to update environment configuration");
|
||||
}
|
||||
}
|
||||
@@ -143,7 +143,7 @@ export default prisma;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
} catch (error) {
|
||||
} catch (_error) {
|
||||
log.warn(
|
||||
pc.yellow("Could not add Prisma Accelerate extension automatically"),
|
||||
);
|
||||
|
||||
@@ -176,7 +176,7 @@ async function updateRootPackageJson(
|
||||
cwd: projectDir,
|
||||
});
|
||||
packageJson.packageManager = `${options.packageManager}@${stdout.trim()}`;
|
||||
} catch (e) {
|
||||
} catch (_e) {
|
||||
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";
|
||||
|
||||
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") {
|
||||
return;
|
||||
@@ -25,7 +25,7 @@ export async function setupRuntime(config: ProjectConfig): Promise<void> {
|
||||
|
||||
async function setupBunRuntime(
|
||||
serverDir: string,
|
||||
backend: ProjectBackend,
|
||||
_backend: ProjectBackend,
|
||||
): Promise<void> {
|
||||
const packageJsonPath = path.join(serverDir, "package.json");
|
||||
if (!(await fs.pathExists(packageJsonPath))) return;
|
||||
|
||||
@@ -7,7 +7,7 @@ import type { ProjectConfig } from "../types";
|
||||
import { getPackageExecutionCommand } from "../utils/get-package-execution-command";
|
||||
|
||||
export async function setupStarlight(config: ProjectConfig): Promise<void> {
|
||||
const { projectName, packageManager, projectDir } = config;
|
||||
const { packageManager, projectDir } = config;
|
||||
const s = spinner();
|
||||
|
||||
try {
|
||||
|
||||
@@ -10,7 +10,7 @@ import { getPackageExecutionCommand } from "../utils/get-package-execution-comma
|
||||
import type { ProjectConfig } from "../types";
|
||||
|
||||
export async function setupTauri(config: ProjectConfig): Promise<void> {
|
||||
const { projectName, packageManager, frontend, projectDir } = config;
|
||||
const { packageManager, frontend, projectDir } = config;
|
||||
const s = spinner();
|
||||
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 });
|
||||
}
|
||||
|
||||
const hasTanstackRouter = frontend.includes("tanstack-router");
|
||||
const _hasTanstackRouter = frontend.includes("tanstack-router");
|
||||
const hasReactRouter = frontend.includes("react-router");
|
||||
const hasNuxt = frontend.includes("nuxt");
|
||||
const hasSvelte = frontend.includes("svelte");
|
||||
const hasSolid = frontend.includes("solid");
|
||||
const _hasSolid = frontend.includes("solid");
|
||||
const hasNext = frontend.includes("next");
|
||||
|
||||
const devUrl =
|
||||
|
||||
@@ -47,7 +47,7 @@ async function processAndCopyFiles(
|
||||
} else {
|
||||
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 hasNativeWind = context.frontend.includes("native-nativewind");
|
||||
const hasUnistyles = context.frontend.includes("native-unistyles");
|
||||
const hasNative = hasNativeWind || hasUnistyles;
|
||||
const _hasNative = hasNativeWind || hasUnistyles;
|
||||
const isConvex = context.backend === "convex";
|
||||
|
||||
if (hasReactWeb || hasNuxtWeb || hasSvelteWeb || hasSolidWeb) {
|
||||
@@ -677,7 +677,7 @@ export async function setupExamplesTemplate(
|
||||
await fs.copy(srcPath, destPath, { overwrite: false });
|
||||
}
|
||||
}
|
||||
} catch (error) {}
|
||||
} catch (_error) {}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ async function loginToTurso() {
|
||||
await $`turso auth login`;
|
||||
s.stop("Logged in to Turso successfully!");
|
||||
return true;
|
||||
} catch (error) {
|
||||
} catch (_error) {
|
||||
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(),
|
||||
authToken: authToken.trim(),
|
||||
};
|
||||
} catch (error) {
|
||||
} catch (_error) {
|
||||
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";
|
||||
|
||||
export async function setupTurso(config: ProjectConfig): Promise<void> {
|
||||
const { projectName, orm, projectDir } = config;
|
||||
const isDrizzle = orm === "drizzle";
|
||||
const { orm, projectDir } = config;
|
||||
const _isDrizzle = orm === "drizzle";
|
||||
const setupSpinner = spinner();
|
||||
setupSpinner.start("Setting up Turso database");
|
||||
|
||||
try {
|
||||
const platform = os.platform();
|
||||
const isMac = platform === "darwin";
|
||||
const isLinux = platform === "linux";
|
||||
const _isLinux = platform === "linux";
|
||||
const isWindows = platform === "win32";
|
||||
|
||||
if (isWindows) {
|
||||
|
||||
@@ -15,7 +15,6 @@ import yargs from "yargs";
|
||||
import { hideBin } from "yargs/helpers";
|
||||
import { DEFAULT_CONFIG } from "./constants";
|
||||
import { createProject } from "./helpers/create-project";
|
||||
import { setupDatabase } from "./helpers/db-setup";
|
||||
import { gatherConfig } from "./prompts/config-prompts";
|
||||
import { getProjectName } from "./prompts/project-name";
|
||||
import type {
|
||||
@@ -632,11 +631,11 @@ function processAndValidateFlags(
|
||||
config.database ?? (options.yes ? DEFAULT_CONFIG.database : undefined);
|
||||
const effectiveOrm =
|
||||
config.orm ?? (options.yes ? DEFAULT_CONFIG.orm : undefined);
|
||||
const effectiveAuth =
|
||||
const _effectiveAuth =
|
||||
config.auth ?? (options.yes ? DEFAULT_CONFIG.auth : undefined);
|
||||
const effectiveDbSetup =
|
||||
const _effectiveDbSetup =
|
||||
config.dbSetup ?? (options.yes ? DEFAULT_CONFIG.dbSetup : undefined);
|
||||
const effectiveExamples =
|
||||
const _effectiveExamples =
|
||||
config.examples ?? (options.yes ? DEFAULT_CONFIG.examples : undefined);
|
||||
const effectiveFrontend =
|
||||
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 { DEFAULT_CONFIG } from "../constants";
|
||||
import type { ProjectBackend } from "../types";
|
||||
|
||||
@@ -51,8 +51,7 @@ export async function gatherConfig(
|
||||
): Promise<ProjectConfig> {
|
||||
const result = await group<PromptGroupResults>(
|
||||
{
|
||||
frontend: ({ results }) =>
|
||||
getFrontendChoice(flags.frontend, flags.backend),
|
||||
frontend: () => getFrontendChoice(flags.frontend, flags.backend),
|
||||
backend: ({ results }) =>
|
||||
getBackendFrameworkChoice(flags.backend, results.frontend),
|
||||
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 { DEFAULT_CONFIG } from "../constants";
|
||||
import type { ProjectBackend, ProjectDatabase, ProjectOrm } from "../types";
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { cancel, isCancel, select } from "@clack/prompts";
|
||||
import pc from "picocolors";
|
||||
import type { ProjectPackageManager, ProjectRuntime } from "../types";
|
||||
import type { ProjectPackageManager } from "../types";
|
||||
import { getUserPkgManager } from "../utils/get-package-manager";
|
||||
|
||||
export async function getPackageManagerChoice(
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"esModuleInterop": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
"strict": true,
|
||||
"skipLibCheck": true,
|
||||
"outDir": "dist",
|
||||
|
||||
@@ -49,7 +49,7 @@ export default function SponsorsSection() {
|
||||
href="https://github.com/sponsors/AmanVarshney01"
|
||||
target="_blank"
|
||||
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
|
||||
className="h-4 w-4"
|
||||
@@ -116,7 +116,7 @@ export default function SponsorsSection() {
|
||||
href="https://github.com/sponsors/AmanVarshney01"
|
||||
target="_blank"
|
||||
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">
|
||||
<title>Heart Icon</title>
|
||||
|
||||
@@ -1935,7 +1935,7 @@ const StackBuilder = () => {
|
||||
href="https://github.com/sponsors/AmanVarshney01"
|
||||
target="_blank"
|
||||
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
|
||||
className="h-6 w-6"
|
||||
@@ -2008,7 +2008,7 @@ const StackBuilder = () => {
|
||||
href="https://github.com/sponsors/AmanVarshney01"
|
||||
target="_blank"
|
||||
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"
|
||||
|
||||
@@ -38,6 +38,11 @@
|
||||
"functions": ["clsx", "cva", "cn"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"correctness": {
|
||||
"noUnusedImports": "error",
|
||||
"noUnusedLabels": "error",
|
||||
"noUnusedVariables": "error"
|
||||
}
|
||||
},
|
||||
"ignore": ["template"]
|
||||
|
||||
Reference in New Issue
Block a user