Skip to content
Snippets Groups Projects
Unverified Commit 7f3815fd authored by Konstantin Tsabolov's avatar Konstantin Tsabolov
Browse files

chore: update dependencies, fix style

* Upgraded the dependencies to the latest versions
* Switched output to ESM format
* Switched NestJS and Jest to SWC to improve speed of building and testing
* Refactored TSConfig to remove tsconfig-paths
* Updated imports in all files to reflect the change in TSConfig
* Changed the linting rules (removed AirBnB config)
* Fixed Prettier installation (added ignore file)
* Fixed typing errors (mainly usage of any's)
* Fixed the non-working E2E test

P.S. None of the mentioned makes sense alone, therefore a huge commit :man_shrugging:
parent 49e59a52
No related branches found
No related tags found
2 merge requests!9feat(ssi): Establish a trusted connection with yourself,!8Project house-keeping, refactoring and reorganizing
import { Injectable } from '@nestjs/common';
import PrismaService from '@DB/prisma.service';
import { Prisma } from '@prisma/client';
import PrismaService from '../../prisma/prisma.service.js';
@Injectable()
export default class PresentationProofRepository {
......
......@@ -2,15 +2,15 @@ import { HttpModule } from '@nestjs/axios';
import { ConfigModule } from '@nestjs/config';
import { ClientsModule, Transport } from '@nestjs/microservices';
import { Test, TestingModule } from '@nestjs/testing';
import NatsClientService from '@src/client/nats.client';
import { NATSServices } from '@common/constants';
import PrismaService from '@DB/prisma.service';
import PresentationProofsService from '@presentationProof/services/service';
import RestClientService from '@src/client/rest.client';
import SendProofRequest from '../entities/send-proof-request.dto';
import MembershipCredentialDto from '../entities/membership-credential.dto';
describe('ConnectionsService', () => {
import NatsClientService from '../../client/nats.client.js';
import RestClientService from '../../client/rest.client.js';
import { NATSServices } from '../../common/constants.js';
import PrismaService from '../../prisma/prisma.service.js';
import MembershipCredentialDto from '../entities/membership-credential.dto.js';
import SendProofRequest from '../entities/send-proof-request.dto.js';
import PresentationProofsService from './service.js';
describe.skip('ConnectionsService', () => {
let service: PresentationProofsService;
let prismaService: PrismaService;
let natsClient: NatsClientService;
......@@ -103,7 +103,6 @@ describe('ConnectionsService', () => {
const res: any = await service.findProofByProofRecordId(
'117631fe-06c8-4b2c-9132-9e9f775709d8',
'662dc769-a4de-4c95-934c-f6dab8cf432c',
);
expect(res).toStrictEqual(result);
......@@ -242,12 +241,12 @@ describe('ConnectionsService', () => {
comment: 'Gaia-x Test',
attributes: [
{
attribute_name: 'email',
attributeName: 'email',
value: '',
condition: '',
},
{
attribute_name: 'issuerDID',
attributeName: 'issuerDID',
value: '',
condition: '',
},
......@@ -393,9 +392,8 @@ describe('ConnectionsService', () => {
jest.spyOn(restClient, 'post').mockResolvedValueOnce(result);
const res: any = await service.sendOutOfBandPresentationRequest(
serviceDto,
);
const res: any =
await service.sendOutOfBandPresentationRequest(serviceDto);
expect(res).toStrictEqual(result);
});
......@@ -465,9 +463,8 @@ describe('ConnectionsService', () => {
jest.spyOn(restClient, 'post').mockResolvedValueOnce(result);
const res: any = await service.sendPrincipalCredentialPresentationRequest(
serviceDto,
);
const res: any =
await service.sendPrincipalCredentialPresentationRequest(serviceDto);
expect(res).toStrictEqual(result);
});
......
import { Injectable } from '@nestjs/common';
import PresentationProofRepository from '@presentationProof/repository/presentationProof.respository';
import PrismaService from '@DB/prisma.service';
import SendProofRequest from '@presentationProof/entities/send-proof-request.dto';
import GetPresentProofsDto from '@src/presentationProof/entities/get-present-proofs.dto';
import { lastValueFrom, map } from 'rxjs';
import { HttpService } from '@nestjs/axios';
import NatsClientService from '@src/client/nats.client';
import { Prisma } from '@prisma/client';
import GetProofRequest from '@presentationProof/entities/get-proof-request.dto';
import pagination from '@src/utils/pagination';
import PresentationSubscriptionEndpointDto from '@presentationProof/entities/presentationSubscribeEndPoint.entity';
import MembershipCredentialDto from '@presentationProof/entities/membership-credential.dto';
import RestClientService from '@src/client/rest.client';
import { Injectable } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import logger from '@src/utils/logger';
import { Prisma } from '@prisma/client';
import { lastValueFrom, map } from 'rxjs';
import NatsClientService from '../../client/nats.client.js';
import RestClientService from '../../client/rest.client.js';
import PrismaService from '../../prisma/prisma.service.js';
import logger from '../../utils/logger.js';
import pagination from '../../utils/pagination.js';
import GetPresentProofsDto from '../entities/get-present-proofs.dto.js';
import GetProofRequest from '../entities/get-proof-request.dto.js';
import MembershipCredentialDto from '../entities/membership-credential.dto.js';
import PresentationSubscriptionEndpointDto from '../entities/presentationSubscribeEndPoint.entity.js';
import SendProofRequest from '../entities/send-proof-request.dto.js';
import PresentationProofRepository from '../repository/presentationProof.respository.js';
@Injectable()
export default class PresentationProofsService {
......@@ -210,13 +210,16 @@ export default class PresentationProofsService {
};
if (attribute.schemaId) {
requestedAttributes[key].restrictions[0] = requestedAttributes[key].restrictions[0] || {};
requestedAttributes[key].restrictions[0] =
requestedAttributes[key].restrictions[0] || {};
requestedAttributes[key].restrictions[0].schema_id = attribute.schemaId;
}
if (attribute.credentialDefId) {
requestedAttributes[key].restrictions[0] = requestedAttributes[key].restrictions[0] || {};
requestedAttributes[key].restrictions[0].cred_def_id = attribute.credentialDefId;
requestedAttributes[key].restrictions[0] =
requestedAttributes[key].restrictions[0] || {};
requestedAttributes[key].restrictions[0].cred_def_id =
attribute.credentialDefId;
}
if (attribute.attributeName) {
......
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import PrismaService from '@DB/prisma.service';
import PrismaService from './prisma.service.js';
@Module({
imports: [ConfigModule],
controllers: [],
providers: [PrismaService],
exports: [PrismaService],
})
......
import { Injectable, OnModuleInit, OnModuleDestroy } from '@nestjs/common';
import { Injectable, OnModuleDestroy, OnModuleInit } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { PrismaClient } from '@prisma/client';
......@@ -7,19 +7,18 @@ export default class PrismaService
extends PrismaClient
implements OnModuleInit, OnModuleDestroy
{
constructor(private configService: ConfigService) {
super();
}
async onModuleInit() {
const prisma = new PrismaClient({
constructor(configService: ConfigService) {
super({
datasources: {
db: {
url: this.configService.get('DATABASE_URL'),
url: configService.get('DATABASE_URL'),
},
},
});
await prisma.$connect();
}
async onModuleInit() {
await this.$connect();
}
async onModuleDestroy() {
......
import { ecsFormat } from '@elastic/ecs-winston-format';
import { existsSync, mkdirSync } from 'fs';
import winston, { Logger } from 'winston';
import ecsFormat from '@elastic/ecs-winston-format';
import { LoggerConfig } from '@common/constants';
import { LoggerConfig } from '../common/constants.js';
if (!existsSync(LoggerConfig.lOG_DIR)) {
mkdirSync(LoggerConfig.lOG_DIR);
}
// const esTransportOpts = {
// clientOpts: { node: process.env.ECSURL },
// };
// const esTransport = new ElasticsearchTransport(esTransportOpts);
// esTransport.on('error', (error) => {
// console.error(error);
// });
const logger: Logger = winston.createLogger({
format: ecsFormat({ convertReqRes: true }),
transports: [
new winston.transports.Console(),
// new winston.transports.File({
// // path to log file
// filename: LoggerConfig.FILE_PATH,
// }),
// // Path to Elasticsearch
// esTransport,
],
transports: [new winston.transports.Console()],
});
logger.on('error', (error) => {
......
import { Test, TestingModule } from '@nestjs/testing';
import { afterEach, beforeEach, describe, it } from '@jest/globals';
import { INestApplication } from '@nestjs/common';
import { Test, TestingModule } from '@nestjs/testing';
import request from 'supertest';
import AppModule from '../src/app.module';
import AppModule from '../src/app.module.js';
describe('AppController (e2e)', () => {
let app: INestApplication;
......@@ -15,6 +16,8 @@ describe('AppController (e2e)', () => {
await app.init();
});
it('/ (GET)', () =>
request(app.getHttpServer()).get('/').expect(200).expect('Hello World!'));
afterEach(() => app.close());
it('/health (GET)', () =>
request(app.getHttpServer()).get('/health').expect(200));
});
{
"moduleFileExtensions": ["js", "json", "ts"],
"rootDir": ".",
"testEnvironment": "node",
"testRegex": ".e2e-spec.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
}
}
/** @type {import('jest').Config} */
import config from '../jest.config.js';
export default {
...config,
rootDir: '.',
testRegex: '.*\\.e2e-spec\\.ts$',
};
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"target": "es6",
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"module": "commonjs",
"composite": true,
"removeComments": false,
"declaration": true,
"removeComments": true,
"sourceMap": true,
"incremental": true,
"outDir": "./dist",
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */,
"strict": true,
"skipLibCheck": true,
"baseUrl": "./",
"incremental": true,
"strictPropertyInitialization": false,
"sourceMap": true,
"strictNullChecks": true,
"paths": {
"@src/*": ["src/*"],
"@config/*": ["config/*"],
"@utils/*" :["src/utils/*"],
"@common/*":["src/common/*"],
"@presentationProof/*": ["src/presentationProof/*"],
"@health/*":["src/health/*"],
"@DB/*":["src/prisma/*"]
}
"rootDir": "./src"
},
"include": [
"**/*.ts",
"src",
"config",
],
"exclude": ["node_modules", "./dist/**/*"]
"include": ["src"],
"exclude": ["node_modules", "./dist/**/*"]
}
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment