X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fperformance%2Fstorage%2FJsonFileStorage.ts;h=94c36eddac1ea5012d81d22d314f52dfa8edc12f;hb=293aaa3118bbd8c6a6e7933f049d51031c134fa6;hp=d1c294d8185e2d4526b2eeeec3e29f31f0f21220;hpb=6c1761d470507ea23d186be61b94ca7375c5144a;p=e-mobility-charging-stations-simulator.git diff --git a/src/performance/storage/JsonFileStorage.ts b/src/performance/storage/JsonFileStorage.ts index d1c294d8..94c36edd 100644 --- a/src/performance/storage/JsonFileStorage.ts +++ b/src/performance/storage/JsonFileStorage.ts @@ -1,13 +1,14 @@ -// Copyright Jerome Benoit. 2021. All Rights Reserved. +// Copyright Jerome Benoit. 2021-2023. All Rights Reserved. import fs from 'fs'; import lockfile from 'proper-lockfile'; +import { Storage } from './Storage'; import { FileType } from '../../types/FileType'; -import type Statistics from '../../types/Statistics'; +import type { Statistics } from '../../types/Statistics'; import FileUtils from '../../utils/FileUtils'; -import { Storage } from './Storage'; +import Utils from '../../utils/Utils'; export class JsonFileStorage extends Storage { private fd: number | null = null; @@ -21,7 +22,7 @@ export class JsonFileStorage extends Storage { this.checkPerformanceRecordsFile(); lockfile .lock(this.dbName, { stale: 5000, retries: 3 }) - .then(async (release) => { + .then(async release => { try { const fileData = fs.readFileSync(this.dbName, 'utf8'); const performanceRecords: Statistics[] = fileData @@ -30,19 +31,7 @@ export class JsonFileStorage extends Storage { performanceRecords.push(performanceStatistics); fs.writeFileSync( this.dbName, - JSON.stringify( - performanceRecords, - (key, value) => { - if (value instanceof Map) { - return { - dataType: 'Map', - value: [...value], - }; - } - return value as Statistics; - }, - 2 - ), + Utils.JSONStringifyWithMapSupport(performanceRecords, 2), 'utf8' ); } catch (error) {