diff --git a/eslint.config.js b/eslint.config.js index ec5fd5b8..6356bded 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -48,6 +48,10 @@ export default defineConfig([ rules: { "@typescript-eslint/switch-exhaustiveness-check": "error", "@typescript-eslint/no-non-null-assertion": "error", + eqeqeq: "error", + "no-self-compare": "error", + "no-unassigned-vars": "error", + "@typescript-eslint/await-thenable": "error", }, }, globalIgnores([ diff --git a/src/common/atlas/apiClient.ts b/src/common/atlas/apiClient.ts index 66f9ada1..6c885584 100644 --- a/src/common/atlas/apiClient.ts +++ b/src/common/atlas/apiClient.ts @@ -58,7 +58,7 @@ export class ApiClient { private isAccessTokenValid(): boolean { return !!( this.accessToken && - this.accessToken.expires_at != undefined && + this.accessToken.expires_at !== undefined && this.accessToken.expires_at > Date.now() ); } @@ -89,6 +89,7 @@ export class ApiClient { return request; } catch { // ignore not availble tokens, API will return 401 + return undefined; } }, }; @@ -183,6 +184,8 @@ export class ApiClient { } return this.accessToken; } + + return undefined; } public async validateAccessToken(): Promise { diff --git a/src/common/atlas/cluster.ts b/src/common/atlas/cluster.ts index a85e2d6f..f3557890 100644 --- a/src/common/atlas/cluster.ts +++ b/src/common/atlas/cluster.ts @@ -51,12 +51,12 @@ export function formatCluster(cluster: ClusterDescription20240805): Cluster { }); const instanceSize = regionConfigs[0]?.instanceSize ?? "UNKNOWN"; - const clusterInstanceType = instanceSize == "M0" ? "FREE" : "DEDICATED"; + const clusterInstanceType = instanceSize === "M0" ? "FREE" : "DEDICATED"; return { name: cluster.name, instanceType: clusterInstanceType, - instanceSize: clusterInstanceType == "DEDICATED" ? instanceSize : undefined, + instanceSize: clusterInstanceType === "DEDICATED" ? instanceSize : undefined, state: cluster.stateName, mongoDBVersion: cluster.mongoDBVersion, connectionString: cluster.connectionStrings?.standardSrv || cluster.connectionStrings?.standard, diff --git a/src/tools/atlas/connect/connectCluster.ts b/src/tools/atlas/connect/connectCluster.ts index e83c3040..a0087a0e 100644 --- a/src/tools/atlas/connect/connectCluster.ts +++ b/src/tools/atlas/connect/connectCluster.ts @@ -136,8 +136,8 @@ export class ConnectClusterTool extends AtlasToolBase { for (let i = 0; i < 600; i++) { if ( !this.session.connectedAtlasCluster || - this.session.connectedAtlasCluster.projectId != projectId || - this.session.connectedAtlasCluster.clusterName != clusterName + this.session.connectedAtlasCluster.projectId !== projectId || + this.session.connectedAtlasCluster.clusterName !== clusterName ) { throw new Error("Cluster connection aborted"); } @@ -164,8 +164,8 @@ export class ConnectClusterTool extends AtlasToolBase { if (lastError) { if ( - this.session.connectedAtlasCluster?.projectId == projectId && - this.session.connectedAtlasCluster?.clusterName == clusterName && + this.session.connectedAtlasCluster?.projectId === projectId && + this.session.connectedAtlasCluster?.clusterName === clusterName && this.session.connectedAtlasCluster?.username ) { void this.session.apiClient diff --git a/tsconfig.build.json b/tsconfig.build.json index 57edf983..48a9b414 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -14,7 +14,8 @@ "skipLibCheck": true, "resolveJsonModule": true, "allowSyntheticDefaultImports": true, - "typeRoots": ["./node_modules/@types", "./src/types"] + "typeRoots": ["./node_modules/@types", "./src/types"], + "noImplicitReturns": true }, "include": ["src/**/*.ts"] }