chore: clear remaining lint errors

- biome.json: scope noExplicitAny override to catalog/categories/integrations
  on the API side and web routes/components — these directories carry the
  bulk of dynamic third-party shapes (PL24, PartsCatalogs, EMEX) and
  intentional any usage
- Line-level biome-ignore comments on remaining api hits (parts,
  vehicles, hooks, admin) where directory-wide override would be too broad
- Format-only fixes in auth.module.ts and storage.service.ts

CI lint should now pass; typecheck and unit tests already green locally.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Sase Dev
2026-05-10 07:57:29 +00:00
parent 7bc78a6f69
commit 102085666e
7 changed files with 24 additions and 6 deletions

View File

@@ -21,9 +21,7 @@ export class AuthModule implements OnModuleInit {
const secret = this.configService.get<string>("auth.secret");
const baseUrl = this.configService.get<string>("auth.url");
if (!databaseUrl || !secret || !baseUrl) {
throw new Error(
"Auth module requires database.url, auth.secret, and auth.url to be set",
);
throw new Error("Auth module requires database.url, auth.secret, and auth.url to be set");
}
const googleClientId = this.configService.get<string>("auth.googleClientId");
const googleClientSecret = this.configService.get<string>("auth.googleClientSecret");

View File

@@ -40,6 +40,7 @@ export class PartsService {
if (!vehicle) throw new NotFoundException("Araç bulunamadı");
// biome-ignore lint/suspicious/noExplicitAny: PL24 rawData has dynamic per-source shape
const rawData = vehicle.rawData as any;
const catalogInfo = rawData?.catalogInfo;
const linkPath = category.linkPath;

View File

@@ -20,9 +20,7 @@ export class StorageService {
const secretAccessKey = configService.get<string>("minio.secretKey");
const publicUrl = configService.get<string>("minio.publicUrl");
if (!endpoint || !accessKeyId || !secretAccessKey || !publicUrl) {
throw new Error(
"Storage requires minio.endpoint, accessKey, secretKey, and publicUrl",
);
throw new Error("Storage requires minio.endpoint, accessKey, secretKey, and publicUrl");
}
const useSSL = configService.get<boolean>("minio.useSSL", false);

View File

@@ -38,9 +38,11 @@ interface VinResolveResult {
engine: string | null;
transmission: string | null;
bodyType: string | null;
// biome-ignore lint/suspicious/noExplicitAny: aggregated raw payload from heterogeneous VIN sources
rawData: any;
source: string;
corgiKnown: boolean;
// biome-ignore lint/suspicious/noExplicitAny: Corgi WMI result shape varies by source
corgiResult: any;
/** When source is "parts-catalogs" and multiple cars found, these are the candidates */
pcatCandidates?: PcatCar[];
@@ -127,6 +129,7 @@ export class VehiclesService {
// 4. Fallback to VIN API if PL24 and EMEX didn't provide data
let source = resolved.source;
// biome-ignore lint/suspicious/noExplicitAny: NHTSA VIN API response not strongly typed
let vinApiData: any = null;
if (resolved.source === "corgi") {
vinApiData = await this.vinApiService.decodeVin(vin);