Refine UI server attributes scope and type
[e-mobility-charging-stations-simulator.git] / src / types / ConfigurationData.ts
1 import { StorageType } from './Storage';
2 import { ServerOptions as WSServerOptions } from 'ws';
3 import type { WorkerChoiceStrategy } from 'poolifier';
4 import { WorkerProcessType } from './Worker';
5
6 export enum SupervisionUrlDistribution {
7 ROUND_ROBIN = 'round-robin',
8 RANDOM = 'random',
9 SEQUENTIAL = 'sequential',
10 }
11
12 export interface StationTemplateUrl {
13 file: string;
14 numberOfStations: number;
15 }
16
17 export interface UIServerConfiguration {
18 enabled?: boolean;
19 options?: WSServerOptions;
20 }
21
22 export interface StorageConfiguration {
23 enabled?: boolean;
24 type?: StorageType;
25 uri?: string;
26 }
27
28 export default interface ConfigurationData {
29 supervisionUrls?: string | string[];
30 supervisionUrlDistribution?: SupervisionUrlDistribution;
31 stationTemplateUrls: StationTemplateUrl[];
32 uiServer?: UIServerConfiguration;
33 performanceStorage?: StorageConfiguration;
34 autoReconnectMaxRetries?: number;
35 workerProcess?: WorkerProcessType;
36 workerStartDelay?: number;
37 elementStartDelay?: number;
38 workerPoolMinSize?: number;
39 workerPoolMaxSize?: number;
40 workerPoolStrategy?: WorkerChoiceStrategy;
41 chargingStationsPerWorker?: number;
42 logStatisticsInterval?: number;
43 logFormat?: string;
44 logLevel?: string;
45 logRotate?: boolean;
46 logMaxFiles?: number;
47 logFile?: string;
48 logErrorFile?: string;
49 logConsole?: boolean;
50 }