fix: fix performance records duplication
[e-mobility-charging-stations-simulator.git] / src / performance / storage / MikroOrmStorage.ts
index 021bc28b078a658e7e4191d9fae13a2a45c31a84..d1b84b8577d6bd267cf709cbc4cfd0880ceaea88 100644 (file)
@@ -1,21 +1,27 @@
 // Copyright Jerome Benoit. 2021-2023. All Rights Reserved.
 
-import { Configuration, Connection, IDatabaseDriver, MikroORM, Options } from '@mikro-orm/core';
+import {
+  Configuration,
+  Connection,
+  type IDatabaseDriver,
+  MikroORM,
+  type Options,
+} from '@mikro-orm/core';
 import { TsMorphMetadataProvider } from '@mikro-orm/reflection';
 
+import { Storage } from './Storage';
 import {
-  type MikroORMDBType,
+  type MikroOrmDbType,
   PerformanceData,
   PerformanceRecord,
   type Statistics,
   StorageType,
 } from '../../types';
-import { Constants } from '../../utils/Constants';
-import { Storage } from '../internal';
+import { Constants } from '../../utils';
 
 export class MikroOrmStorage extends Storage {
   private storageType: StorageType;
-  private orm!: MikroORM | null;
+  private orm?: MikroORM;
 
   constructor(storageUri: string, logPrefix: string, storageType: StorageType) {
     super(storageUri, logPrefix);
@@ -23,6 +29,7 @@ export class MikroOrmStorage extends Storage {
     this.dbName = this.getDBName();
   }
 
+  // eslint-disable-next-line @typescript-eslint/no-unused-vars
   public async storePerformanceStatistics(performanceStatistics: Statistics): Promise<void> {
     try {
       const performanceRecord = new PerformanceRecord();
@@ -46,7 +53,7 @@ export class MikroOrmStorage extends Storage {
     try {
       if (this?.orm) {
         await this.orm.close();
-        this.orm = null;
+        delete this?.orm;
       }
     } catch (error) {
       this.handleDBError(this.storageType, error as Error);
@@ -69,7 +76,7 @@ export class MikroOrmStorage extends Storage {
     return {
       metadataProvider: TsMorphMetadataProvider,
       entities: [PerformanceRecord, PerformanceData],
-      type: this.storageType as MikroORMDBType,
+      type: this.storageType as MikroOrmDbType,
       clientUrl: this.getClientUrl(),
     };
   }