add unused var, import lint rule

This commit is contained in:
Aman Varshney
2025-05-18 23:41:01 +05:30
parent 0532057c3b
commit bd4cf40bb8
27 changed files with 54 additions and 60 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, frontend, projectDir } = config;
const { addons, frontend, projectDir } = config;
const hasReactWebFrontend =
frontend.includes("react-router") || frontend.includes("tanstack-router");
const hasNuxtFrontend = frontend.includes("nuxt");

View File

@@ -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) {

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -405,7 +405,7 @@ function generateScriptsList(
packageManagerRunCmd: string,
database: ProjectDatabase,
orm: ProjectOrm,
auth: boolean,
_auth: boolean,
hasNative: boolean,
addons: ProjectAddons[],
backend: string,

View File

@@ -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");

View File

@@ -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" ||

View File

@@ -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"));
}

View File

@@ -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");

View File

@@ -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");

View File

@@ -10,7 +10,6 @@ export function displayPostInstallInstructions(
) {
const {
database,
projectName,
relativePath,
packageManager,
depsInstalled,

View File

@@ -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"),
);

View File

@@ -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.`);
}

View File

@@ -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;

View File

@@ -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 {

View File

@@ -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 =

View File

@@ -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) {}
}
}

View File

@@ -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) {

View File

@@ -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);

View File

@@ -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";

View File

@@ -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 }) =>

View File

@@ -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";

View File

@@ -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(

View File

@@ -4,6 +4,7 @@
"module": "ESNext",
"moduleResolution": "bundler",
"esModuleInterop": true,
"verbatimModuleSyntax": true,
"strict": true,
"skipLibCheck": true,
"outDir": "dist",

View File

@@ -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>

View File

@@ -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"

View File

@@ -38,6 +38,11 @@
"functions": ["clsx", "cva", "cn"]
}
}
},
"correctness": {
"noUnusedImports": "error",
"noUnusedLabels": "error",
"noUnusedVariables": "error"
}
},
"ignore": ["template"]