X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fperformance%2Fstorage%2FJSONFileStorage.ts;h=7e23365ef77212cab7cf9f8ef690d214edad9ef7;hb=dc100e978337264ceade1c7bbd67faa967c874e1;hp=30c83d3d75592991f3424f31b7b65a35484c500c;hpb=c63c21bce46d9230688d0c5ebd31f5dd861324de;p=e-mobility-charging-stations-simulator.git diff --git a/src/performance/storage/JSONFileStorage.ts b/src/performance/storage/JSONFileStorage.ts index 30c83d3d..7e23365e 100644 --- a/src/performance/storage/JSONFileStorage.ts +++ b/src/performance/storage/JSONFileStorage.ts @@ -23,13 +23,27 @@ export class JSONFileStorage extends Storage { const fileData = fs.readFileSync(this.dbName, 'utf8'); const performanceRecords: Statistics[] = fileData ? JSON.parse(fileData) as Statistics[] : []; performanceRecords.push(performanceStatistics); - fs.writeFileSync(this.dbName, JSON.stringify(performanceRecords, null, 2), 'utf8'); + fs.writeFileSync( + this.dbName, + JSON.stringify(performanceRecords, + (key, value) => { + if (value instanceof Map) { + return { + dataType: 'Map', + value: [...value] + }; + } + return value as Statistics; + }, + 2), + 'utf8' + ); } catch (error) { - FileUtils.handleFileException(this.logPrefix, Constants.PERFORMANCE_RECORDS_FILETYPE, this.dbName, error); + FileUtils.handleFileException(this.logPrefix, Constants.PERFORMANCE_RECORDS_FILETYPE, this.dbName, error as NodeJS.ErrnoException); } await release(); }) - .catch(() => { }); + .catch(() => { /* This is intentional */ }); } public open(): void { @@ -38,7 +52,7 @@ export class JSONFileStorage extends Storage { this.fd = fs.openSync(this.dbName, 'a+'); } } catch (error) { - FileUtils.handleFileException(this.logPrefix, Constants.PERFORMANCE_RECORDS_FILETYPE, this.dbName, error); + FileUtils.handleFileException(this.logPrefix, Constants.PERFORMANCE_RECORDS_FILETYPE, this.dbName, error as NodeJS.ErrnoException); } } @@ -49,7 +63,7 @@ export class JSONFileStorage extends Storage { this.fd = null; } } catch (error) { - FileUtils.handleFileException(this.logPrefix, Constants.PERFORMANCE_RECORDS_FILETYPE, this.dbName, error); + FileUtils.handleFileException(this.logPrefix, Constants.PERFORMANCE_RECORDS_FILETYPE, this.dbName, error as NodeJS.ErrnoException); } }