fix: resolve TypeScript and ESLint errors across the codebase

- Fixed @typescript-eslint/no-unused-vars errors (31 instances)
- Fixed @typescript-eslint/no-explicit-any errors in backend (~22 instances)
- Fixed @typescript-eslint/no-explicit-any errors in frontend (~60 instances)
- Fixed prefer-const errors (5 instances)
- Fixed no-empty-object-type and rules-of-hooks errors
- Added proper type assertions for database operations
- Improved type safety in authentication and encryption modules
- Enhanced type definitions for API routes and SSH operations

All TypeScript compilation errors resolved. Application builds and runs successfully.
This commit is contained in:
ZacharyZcR
2025-10-09 23:05:55 +08:00
parent eb76f416bf
commit 8f102bf971
45 changed files with 494 additions and 217 deletions

View File

@@ -89,7 +89,7 @@ class UserDataImport {
) {
const importStats = await this.importSshHosts(
targetUserId,
exportData.userData.sshHosts,
exportData.userData.sshHosts as Record<string, unknown>[],
{ replaceExisting, dryRun, userDataKey },
);
result.summary.sshHostsImported = importStats.imported;
@@ -104,7 +104,7 @@ class UserDataImport {
) {
const importStats = await this.importSshCredentials(
targetUserId,
exportData.userData.sshCredentials,
exportData.userData.sshCredentials as Record<string, unknown>[],
{ replaceExisting, dryRun, userDataKey },
);
result.summary.sshCredentialsImported = importStats.imported;
@@ -129,7 +129,7 @@ class UserDataImport {
) {
const importStats = await this.importDismissedAlerts(
targetUserId,
exportData.userData.dismissedAlerts,
exportData.userData.dismissedAlerts as Record<string, unknown>[],
{ replaceExisting, dryRun },
);
result.summary.dismissedAlertsImported = importStats.imported;
@@ -159,7 +159,7 @@ class UserDataImport {
private static async importSshHosts(
targetUserId: string,
sshHosts: any[],
sshHosts: Record<string, unknown>[],
options: {
replaceExisting: boolean;
dryRun: boolean;
@@ -198,7 +198,9 @@ class UserDataImport {
delete processedHostData.id;
await getDb().insert(sshData).values(processedHostData);
await getDb()
.insert(sshData)
.values(processedHostData as unknown as typeof sshData.$inferInsert);
imported++;
} catch (error) {
errors.push(
@@ -213,7 +215,7 @@ class UserDataImport {
private static async importSshCredentials(
targetUserId: string,
credentials: any[],
credentials: Record<string, unknown>[],
options: {
replaceExisting: boolean;
dryRun: boolean;
@@ -254,7 +256,11 @@ class UserDataImport {
delete processedCredentialData.id;
await getDb().insert(sshCredentials).values(processedCredentialData);
await getDb()
.insert(sshCredentials)
.values(
processedCredentialData as unknown as typeof sshCredentials.$inferInsert,
);
imported++;
} catch (error) {
errors.push(
@@ -269,7 +275,7 @@ class UserDataImport {
private static async importFileManagerData(
targetUserId: string,
fileManagerData: any,
fileManagerData: Record<string, unknown>,
options: { replaceExisting: boolean; dryRun: boolean },
) {
let imported = 0;
@@ -356,7 +362,7 @@ class UserDataImport {
private static async importDismissedAlerts(
targetUserId: string,
alerts: any[],
alerts: Record<string, unknown>[],
options: { replaceExisting: boolean; dryRun: boolean },
) {
let imported = 0;
@@ -376,7 +382,7 @@ class UserDataImport {
.where(
and(
eq(dismissedAlerts.userId, targetUserId),
eq(dismissedAlerts.alertId, alert.alertId),
eq(dismissedAlerts.alertId, alert.alertId as string),
),
);
@@ -395,10 +401,12 @@ class UserDataImport {
if (existing.length > 0 && options.replaceExisting) {
await getDb()
.update(dismissedAlerts)
.set(newAlert)
.set(newAlert as typeof dismissedAlerts.$inferInsert)
.where(eq(dismissedAlerts.id, existing[0].id));
} else {
await getDb().insert(dismissedAlerts).values(newAlert);
await getDb()
.insert(dismissedAlerts)
.values(newAlert as typeof dismissedAlerts.$inferInsert);
}
imported++;