X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fperformance%2Fstorage%2FJsonFileStorage.ts;h=63d12a439a0aa6a54283b4717ce93ce0e1ba596a;hb=72092cfcf8a31c06e4592b25e060e2d74d2ed99c;hp=8a8808e9baa7af069a2834a2afe14a796ccaca1d;hpb=e7aeea18e189dd087c8f951cf77a253e2818ae90;p=e-mobility-charging-stations-simulator.git diff --git a/src/performance/storage/JsonFileStorage.ts b/src/performance/storage/JsonFileStorage.ts index 8a8808e9..63d12a43 100644 --- a/src/performance/storage/JsonFileStorage.ts +++ b/src/performance/storage/JsonFileStorage.ts @@ -1,12 +1,15 @@ -// Copyright Jerome Benoit. 2021. All Rights Reserved. +// Copyright Jerome Benoit. 2021-2023. All Rights Reserved. -import Constants from '../../utils/Constants'; -import FileUtils from '../../utils/FileUtils'; -import Statistics from '../../types/Statistics'; -import { Storage } from './Storage'; 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 FileUtils from '../../utils/FileUtils'; +import Utils from '../../utils/Utils'; + export class JsonFileStorage extends Storage { private fd: number | null = null; @@ -28,25 +31,13 @@ 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) { FileUtils.handleFileException( this.logPrefix, - Constants.PERFORMANCE_RECORDS_FILETYPE, + FileType.PerformanceRecords, this.dbName, error as NodeJS.ErrnoException ); @@ -66,7 +57,7 @@ export class JsonFileStorage extends Storage { } catch (error) { FileUtils.handleFileException( this.logPrefix, - Constants.PERFORMANCE_RECORDS_FILETYPE, + FileType.PerformanceRecords, this.dbName, error as NodeJS.ErrnoException ); @@ -82,7 +73,7 @@ export class JsonFileStorage extends Storage { } catch (error) { FileUtils.handleFileException( this.logPrefix, - Constants.PERFORMANCE_RECORDS_FILETYPE, + FileType.PerformanceRecords, this.dbName, error as NodeJS.ErrnoException );