From 32ccadc96c2403e325999d4da1cdf17386bacb60 Mon Sep 17 00:00:00 2001
From: Konstantin Tsabolov <1006564+tsabolov@users.noreply.github.com>
Date: Wed, 22 Nov 2023 10:29:39 +0100
Subject: [PATCH] chore: apply eslint rules to ssi-abstraction files

---
 apps/ssi-abstraction/.eslintrc.cjs            | 46 -------------------
 .../src/agent/agent.controller.ts             |  3 +-
 .../ssi-abstraction/src/agent/agent.module.ts |  1 +
 .../src/agent/agent.service.ts                | 35 ++++++++------
 .../agent/connection/connection.controller.ts |  5 +-
 .../src/agent/connection/connection.module.ts |  2 +
 .../agent/connection/connection.service.ts    |  7 ++-
 .../src/agent/ledger/register.ts              |  7 ++-
 .../src/agent/utils/helperFunctions.ts        |  3 +-
 .../ssi-abstraction/src/agent/utils/logger.ts |  1 +
 apps/ssi-abstraction/src/app.module.ts        | 13 ++----
 apps/ssi-abstraction/src/config/config.ts     |  3 +-
 .../src/globalUtils/exception.handler.ts      | 11 +++--
 .../ssi-abstraction/src/globalUtils/logger.ts | 11 +++--
 .../src/health/health.controller.ts           |  2 +-
 apps/ssi-abstraction/src/main.ts              | 27 ++++++-----
 .../src/middleware/agentMid.middleware.ts     | 18 ++------
 apps/ssi-abstraction/test/didComm.e2e-spec.ts | 17 ++++---
 apps/ssi-abstraction/test/health.e2e-spec.ts  |  9 ++--
 19 files changed, 95 insertions(+), 126 deletions(-)
 delete mode 100644 apps/ssi-abstraction/.eslintrc.cjs

diff --git a/apps/ssi-abstraction/.eslintrc.cjs b/apps/ssi-abstraction/.eslintrc.cjs
deleted file mode 100644
index b77971f..0000000
--- a/apps/ssi-abstraction/.eslintrc.cjs
+++ /dev/null
@@ -1,46 +0,0 @@
-module.exports = {
-  root: true,
-  parser: '@typescript-eslint/parser',
-  parserOptions: {
-    sourceType: 'module',
-    ecmaVersion: 2021,
-  },
-  env: {
-    node: true,
-  },
-  plugins: ['prettier', '@typescript-eslint/eslint-plugin', 'jest'],
-  extends: [
-    'prettier',
-    'plugin:@typescript-eslint/recommended',
-    'plugin:jest/recommended',
-  ],
-  ignorePatterns: ['.eslintrc.cjs', 'dist'],
-  overrides: [],
-  settings: {
-    jest: {
-      version: '29',
-    },
-  },
-  rules: {
-    'no-unused-vars': 0,
-    '@typescript-eslint/no-unused-vars': [1, { argsIgnorePattern: '^_' }],
-  },
-  overrides: [
-    {
-      files: [
-        '*.spec.ts',
-        '*.e2e-spec.ts',
-        '__mocks__/*.ts',
-        '__mocks__/**/*.ts',
-      ],
-      rules: {
-        '@typescript-eslint/no-explicit-any': 0,
-        '@typescript-eslint/no-empty-function': 0,
-        '@typescript-eslint/ban-ts-comment': 0,
-        '@typescript-eslint/no-unused-vars': 0,
-        'jest/no-mocks-import': 0,
-        'jest/expect-expect': 0,
-      },
-    },
-  ],
-};
diff --git a/apps/ssi-abstraction/src/agent/agent.controller.ts b/apps/ssi-abstraction/src/agent/agent.controller.ts
index 4b676a5..4a07c5b 100644
--- a/apps/ssi-abstraction/src/agent/agent.controller.ts
+++ b/apps/ssi-abstraction/src/agent/agent.controller.ts
@@ -1,5 +1,6 @@
 import { Controller } from '@nestjs/common';
 import { MessagePattern } from '@nestjs/microservices';
+
 import { AgentService } from './agent.service.js';
 
 @Controller('agent')
@@ -7,7 +8,7 @@ export class AgentController {
   public constructor(private agent: AgentService) {}
 
   @MessagePattern('info.publicDid')
-  async publicDid() {
+  public async publicDid() {
     return {
       id: 'test',
     };
diff --git a/apps/ssi-abstraction/src/agent/agent.module.ts b/apps/ssi-abstraction/src/agent/agent.module.ts
index 4666f06..23b4de0 100644
--- a/apps/ssi-abstraction/src/agent/agent.module.ts
+++ b/apps/ssi-abstraction/src/agent/agent.module.ts
@@ -1,5 +1,6 @@
 import { Module } from '@nestjs/common';
 import { ConfigModule } from '@nestjs/config';
+
 import { AgentController } from './agent.controller.js';
 import { AgentService } from './agent.service.js';
 
diff --git a/apps/ssi-abstraction/src/agent/agent.service.ts b/apps/ssi-abstraction/src/agent/agent.service.ts
index 01dd321..6c3855e 100644
--- a/apps/ssi-abstraction/src/agent/agent.service.ts
+++ b/apps/ssi-abstraction/src/agent/agent.service.ts
@@ -1,10 +1,19 @@
+import type {
+  LedgerIds} from './utils/ledgerConfig.js';
+import type {
+  InitConfig} from '@aries-framework/core';
+import type {
+  IndyVdrPoolConfig} from '@aries-framework/indy-vdr';
+
+import { AnonCredsModule } from '@aries-framework/anoncreds';
+import { AnonCredsRsModule } from '@aries-framework/anoncreds-rs';
+import { AskarModule } from '@aries-framework/askar';
 import {
   Agent,
   ConnectionsModule,
   CredentialsModule,
   DidsModule,
   HttpOutboundTransport,
-  InitConfig,
   KeyDidRegistrar,
   KeyDidResolver,
   KeyType,
@@ -13,30 +22,28 @@ import {
   PeerDidResolver,
   TypedArrayEncoder,
 } from '@aries-framework/core';
-import { agentDependencies, HttpInboundTransport } from '@aries-framework/node';
-import { Injectable } from '@nestjs/common';
-import { ConfigService } from '@nestjs/config';
-import { AnonCredsRsModule } from '@aries-framework/anoncreds-rs';
-import { anoncreds } from '@hyperledger/anoncreds-nodejs';
-import { AnonCredsModule } from '@aries-framework/anoncreds';
-import { ariesAskar } from '@hyperledger/aries-askar-nodejs';
-import { AskarModule } from '@aries-framework/askar';
-import { indyVdr } from '@hyperledger/indy-vdr-nodejs';
 import {
   IndyVdrAnonCredsRegistry,
   IndyVdrIndyDidResolver,
   IndyVdrModule,
-  IndyVdrPoolConfig,
   IndyVdrSovDidResolver,
 } from '@aries-framework/indy-vdr';
+import { agentDependencies, HttpInboundTransport } from '@aries-framework/node';
+import { anoncreds } from '@hyperledger/anoncreds-nodejs';
+import { ariesAskar } from '@hyperledger/aries-askar-nodejs';
+import { indyVdr } from '@hyperledger/indy-vdr-nodejs';
+import { Injectable } from '@nestjs/common';
+import { ConfigService } from '@nestjs/config';
+
+import { logger } from '../globalUtils/logger.js';
+
+import { registerPublicDids } from './ledger/register.js';
 import {
-  LedgerIds,
   ledgerNamespaces,
   LEDGER_GENESIS,
 } from './utils/ledgerConfig.js';
 import { AgentLogger } from './utils/logger.js';
-import { registerPublicDids } from './ledger/register.js';
-import { logger } from '../globalUtils/logger.js';
+
 
 export type AppAgent = Agent<AgentService['modules']>;
 
diff --git a/apps/ssi-abstraction/src/agent/connection/connection.controller.ts b/apps/ssi-abstraction/src/agent/connection/connection.controller.ts
index ac8c667..83df332 100644
--- a/apps/ssi-abstraction/src/agent/connection/connection.controller.ts
+++ b/apps/ssi-abstraction/src/agent/connection/connection.controller.ts
@@ -1,5 +1,6 @@
 import { Controller } from '@nestjs/common';
 import { MessagePattern } from '@nestjs/microservices';
+
 import { ConnectionService } from './connection.service.js';
 
 @Controller('connection')
@@ -7,7 +8,7 @@ export class ConnectionController {
   public constructor(private connectionService: ConnectionService) {}
 
   @MessagePattern('connection.getAll')
-  async getAll() {
-    return await this.connectionService.getAll();
+  public async getAll() {
+    return this.connectionService.getAll();
   }
 }
diff --git a/apps/ssi-abstraction/src/agent/connection/connection.module.ts b/apps/ssi-abstraction/src/agent/connection/connection.module.ts
index e713b17..4deaa82 100644
--- a/apps/ssi-abstraction/src/agent/connection/connection.module.ts
+++ b/apps/ssi-abstraction/src/agent/connection/connection.module.ts
@@ -1,5 +1,7 @@
 import { Module } from '@nestjs/common';
+
 import { AgentModule } from '../agent.module.js';
+
 import { ConnectionController } from './connection.controller.js';
 import { ConnectionService } from './connection.service.js';
 
diff --git a/apps/ssi-abstraction/src/agent/connection/connection.service.ts b/apps/ssi-abstraction/src/agent/connection/connection.service.ts
index ae31d2e..0e4c7ed 100644
--- a/apps/ssi-abstraction/src/agent/connection/connection.service.ts
+++ b/apps/ssi-abstraction/src/agent/connection/connection.service.ts
@@ -1,6 +1,9 @@
-import { ConnectionRecord } from '@aries-framework/core';
+import type { AppAgent } from '../agent.service.js';
+import type { ConnectionRecord } from '@aries-framework/core';
+
 import { Injectable } from '@nestjs/common';
-import { AgentService, AppAgent } from '../agent.service.js';
+
+import { AgentService } from '../agent.service.js';
 
 @Injectable()
 export class ConnectionService {
diff --git a/apps/ssi-abstraction/src/agent/ledger/register.ts b/apps/ssi-abstraction/src/agent/ledger/register.ts
index 05363ee..a14c126 100644
--- a/apps/ssi-abstraction/src/agent/ledger/register.ts
+++ b/apps/ssi-abstraction/src/agent/ledger/register.ts
@@ -1,7 +1,10 @@
-import { logger } from '../../globalUtils/logger.js';
+import type { LedgerIds } from '../utils/ledgerConfig.js';
+
 import axios from 'axios';
+
+import { logger } from '../../globalUtils/logger.js';
 import { logAxiosError } from '../utils/helperFunctions.js';
-import { LedgerIds, ledgerNamespaces, NYM_URL } from '../utils/ledgerConfig.js';
+import { ledgerNamespaces, NYM_URL } from '../utils/ledgerConfig.js';
 
 type RegisterPublicDidOptions = {
   alias: string;
diff --git a/apps/ssi-abstraction/src/agent/utils/helperFunctions.ts b/apps/ssi-abstraction/src/agent/utils/helperFunctions.ts
index 40edef4..b21a3a6 100644
--- a/apps/ssi-abstraction/src/agent/utils/helperFunctions.ts
+++ b/apps/ssi-abstraction/src/agent/utils/helperFunctions.ts
@@ -1,4 +1,5 @@
-import { AxiosError } from 'axios';
+import type { AxiosError } from 'axios';
+
 import { logger } from '../../globalUtils/logger.js';
 
 export function logAxiosError(err: AxiosError) {
diff --git a/apps/ssi-abstraction/src/agent/utils/logger.ts b/apps/ssi-abstraction/src/agent/utils/logger.ts
index b872da0..8fbd779 100644
--- a/apps/ssi-abstraction/src/agent/utils/logger.ts
+++ b/apps/ssi-abstraction/src/agent/utils/logger.ts
@@ -1,4 +1,5 @@
 import { BaseLogger, LogLevel } from '@aries-framework/core';
+
 import { logger } from '../../globalUtils/logger.js';
 
 export class AgentLogger extends BaseLogger {
diff --git a/apps/ssi-abstraction/src/app.module.ts b/apps/ssi-abstraction/src/app.module.ts
index 0017009..d7c2484 100644
--- a/apps/ssi-abstraction/src/app.module.ts
+++ b/apps/ssi-abstraction/src/app.module.ts
@@ -1,13 +1,12 @@
-import { APP_FILTER } from '@nestjs/core';
 import { Module } from '@nestjs/common';
 import { ConfigModule } from '@nestjs/config';
 import { TerminusModule } from '@nestjs/terminus';
+
+import { AgentModule } from './agent/agent.module.js';
+import { ConnectionModule } from './agent/connection/connection.module.js';
 import { config } from './config/config.js';
 import { validationSchema } from './config/validation.js';
 import { HealthController } from './health/health.controller.js';
-import { ExceptionHandler } from './globalUtils/exception.handler.js';
-import { AgentModule } from './agent/agent.module.js';
-import { ConnectionModule } from './agent/connection/connection.module.js';
 
 @Module({
   imports: [
@@ -21,11 +20,5 @@ import { ConnectionModule } from './agent/connection/connection.module.js';
     ConnectionModule,
   ],
   controllers: [HealthController],
-  // providers: [
-  //   {
-  //     provide: APP_FILTER,
-  //     useClass: ExceptionHandler,
-  //   },
-  // ],
 })
 export class AppModule {}
diff --git a/apps/ssi-abstraction/src/config/config.ts b/apps/ssi-abstraction/src/config/config.ts
index 92cc6dd..102dd75 100644
--- a/apps/ssi-abstraction/src/config/config.ts
+++ b/apps/ssi-abstraction/src/config/config.ts
@@ -1,5 +1,4 @@
-import { AutoAcceptCredential } from '@aries-framework/core';
-import * as process from 'process';
+import type { AutoAcceptCredential } from '@aries-framework/core';
 
 interface Config {
   agentHost: string;
diff --git a/apps/ssi-abstraction/src/globalUtils/exception.handler.ts b/apps/ssi-abstraction/src/globalUtils/exception.handler.ts
index 1df4824..593237d 100644
--- a/apps/ssi-abstraction/src/globalUtils/exception.handler.ts
+++ b/apps/ssi-abstraction/src/globalUtils/exception.handler.ts
@@ -1,10 +1,13 @@
-import { Catch, RpcExceptionFilter, ArgumentsHost } from '@nestjs/common';
-import { Observable, throwError } from 'rxjs';
-import { RpcException } from '@nestjs/microservices';
+import type { RpcExceptionFilter } from '@nestjs/common';
+import type { RpcException } from '@nestjs/microservices';
+
+import { Catch } from '@nestjs/common';
+import { throwError } from 'rxjs';
+
 
 @Catch()
 export class ExceptionHandler implements RpcExceptionFilter<RpcException> {
-  catch(exception: RpcException, host: ArgumentsHost): Observable<any> {
+  public catch(exception: RpcException) {
     return throwError(() => exception.getError());
   }
 }
diff --git a/apps/ssi-abstraction/src/globalUtils/logger.ts b/apps/ssi-abstraction/src/globalUtils/logger.ts
index 78c3674..f591764 100644
--- a/apps/ssi-abstraction/src/globalUtils/logger.ts
+++ b/apps/ssi-abstraction/src/globalUtils/logger.ts
@@ -1,11 +1,14 @@
-import winston, { Logger } from 'winston';
-import ecsFormat from '@elastic/ecs-winston-format';
+import type { Logger} from 'winston';
 
-export const logger: Logger = winston.createLogger({
+import { ecsFormat } from '@elastic/ecs-winston-format';
+import { createLogger, transports } from 'winston';
+
+export const logger: Logger = createLogger({
   format: ecsFormat({ convertReqRes: true }),
-  transports: [new winston.transports.Console()],
+  transports: [new transports.Console()],
 });
 
 logger.on('error', (error: Error) => {
+  // eslint-disable-next-line no-console
   console.error('Error in logger caught', error);
 });
diff --git a/apps/ssi-abstraction/src/health/health.controller.ts b/apps/ssi-abstraction/src/health/health.controller.ts
index 6a24038..e7936c0 100644
--- a/apps/ssi-abstraction/src/health/health.controller.ts
+++ b/apps/ssi-abstraction/src/health/health.controller.ts
@@ -8,7 +8,7 @@ export class HealthController {
    * @returns - OK (200) if app is running
    */
   @Get()
-  getHealth() {
+  public getHealth() {
     return {
       statusCode: HttpStatus.OK,
       message: `${new Date()}`,
diff --git a/apps/ssi-abstraction/src/main.ts b/apps/ssi-abstraction/src/main.ts
index 65a822c..1d500b6 100644
--- a/apps/ssi-abstraction/src/main.ts
+++ b/apps/ssi-abstraction/src/main.ts
@@ -1,20 +1,19 @@
+import type { MicroserviceOptions} from '@nestjs/microservices';
+
 import { NestFactory } from '@nestjs/core';
-import { MicroserviceOptions, Transport } from '@nestjs/microservices';
+import { Transport } from '@nestjs/microservices';
+
 import { AppModule } from './app.module.js';
 import { config } from './config/config.js';
 
-async function bootstrap() {
-  const app = await NestFactory.createMicroservice<MicroserviceOptions>(
-    AppModule,
-    {
-      transport: Transport.NATS,
-      options: {
-        servers: [config().nats.url],
-      },
+const app = await NestFactory.createMicroservice<MicroserviceOptions>(
+  AppModule,
+  {
+    transport: Transport.NATS,
+    options: {
+      servers: [config().nats.url],
     },
-  );
-
-  await app.listen();
-}
+  },
+);
 
-bootstrap();
+await app.listen();
diff --git a/apps/ssi-abstraction/src/middleware/agentMid.middleware.ts b/apps/ssi-abstraction/src/middleware/agentMid.middleware.ts
index 0fef2c9..56d1bd1 100644
--- a/apps/ssi-abstraction/src/middleware/agentMid.middleware.ts
+++ b/apps/ssi-abstraction/src/middleware/agentMid.middleware.ts
@@ -1,5 +1,7 @@
-import { Injectable, NestMiddleware, HttpStatus } from '@nestjs/common';
-import { Request, NextFunction, Response } from 'express';
+import type { NestMiddleware} from '@nestjs/common';
+import type { Request, NextFunction, Response } from 'express';
+
+import { Injectable, HttpStatus } from '@nestjs/common';
 
 /**
  * Middleware that checks validity of provided params and body
@@ -7,23 +9,13 @@ import { Request, NextFunction, Response } from 'express';
  */
 @Injectable()
 export class AgentMid implements NestMiddleware {
-  use(req: Request, res: Response, next: NextFunction) {
+  public use(req: Request, res: Response, next: NextFunction) {
     const [, prop] = req.url.split('/');
     if (prop === 'info') {
       next();
       return;
     }
 
-    // const whiteListErrors = checkAll(prop, method, req.body);
-    // if (whiteListErrors && !whiteListErrors.success) {
-    //   res.send({
-    //     statusCode: HttpStatus.BAD_REQUEST,
-    //     error: whiteListErrors.messages,
-    //   });
-    //   res.end();
-    //   return;
-    // }
-
     if (req.body.subMethod && !req.body.subMethod.name) {
       res.send({
         statusCode: HttpStatus.BAD_REQUEST,
diff --git a/apps/ssi-abstraction/test/didComm.e2e-spec.ts b/apps/ssi-abstraction/test/didComm.e2e-spec.ts
index 2e35063..28e77ba 100644
--- a/apps/ssi-abstraction/test/didComm.e2e-spec.ts
+++ b/apps/ssi-abstraction/test/didComm.e2e-spec.ts
@@ -1,7 +1,10 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { INestApplication } from '@nestjs/common';
+import type { INestApplication } from '@nestjs/common';
+import type { TestingModule } from '@nestjs/testing';
+
+import { Test } from '@nestjs/testing';
 import request from 'supertest';
-import AppModule from '../src/app.module';
+
+import { AppModule } from '../src/app.module.js';
 
 describe('DidCommController (e2e)', () => {
   let app: INestApplication;
@@ -18,13 +21,13 @@ describe('DidCommController (e2e)', () => {
     await app.close();
   });
 
-  it('/v1/agent/connections/createConnection (POST)', () => {
-    request(app.getHttpServer())
+  it('/v1/agent/connections/createConnection (POST)', async () => {
+    await request(app.getHttpServer())
       .post('v1/agent/connections/createConnection')
       .expect(200);
   });
 
-  it('/v1/agent/info (GET)', () => {
-    request(app.getHttpServer()).post('v1/agent/info').expect(200);
+  it('/v1/agent/info (GET)', async () => {
+    await request(app.getHttpServer()).post('v1/agent/info').expect(200);
   });
 });
diff --git a/apps/ssi-abstraction/test/health.e2e-spec.ts b/apps/ssi-abstraction/test/health.e2e-spec.ts
index 1f685c6..8d14bcc 100644
--- a/apps/ssi-abstraction/test/health.e2e-spec.ts
+++ b/apps/ssi-abstraction/test/health.e2e-spec.ts
@@ -1,7 +1,10 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { INestApplication } from '@nestjs/common';
+import type { INestApplication } from '@nestjs/common';
+import type { TestingModule } from '@nestjs/testing';
+
+import { Test } from '@nestjs/testing';
 import request from 'supertest';
-import AppModule from '@src/app.module';
+
+import { AppModule } from '../src/app.module.js';
 
 describe('HealthController (e2e)', () => {
   let app: INestApplication;
-- 
GitLab