1 import { ListenOptions
} from
'net';
2 import { StorageType
} from
'./Storage';
3 import { ServerOptions
as WSServerOptions
} from
'ws';
4 import type { WorkerChoiceStrategy
} from
'poolifier';
5 import { WorkerProcessType
} from
'./Worker';
7 export type ServerOptions
= WSServerOptions
& ListenOptions
;
9 export enum SupervisionUrlDistribution
{
10 ROUND_ROBIN
= 'round-robin',
12 SEQUENTIAL
= 'sequential',
15 export interface StationTemplateUrl
{
17 numberOfStations
: number;
20 export interface UIServerConfiguration
{
22 options
?: ServerOptions
;
25 export interface StorageConfiguration
{
31 export interface WorkerConfiguration
{
32 processType
?: WorkerProcessType
;
34 elementsPerWorker
?: number;
35 elementStartDelay
?: number;
38 poolStrategy
?: WorkerChoiceStrategy
;
41 export default interface ConfigurationData
{
42 supervisionUrls
?: string | string[];
43 supervisionUrlDistribution
?: SupervisionUrlDistribution
;
44 stationTemplateUrls
: StationTemplateUrl
[];
45 uiServer
?: UIServerConfiguration
;
46 performanceStorage
?: StorageConfiguration
;
47 worker
?: WorkerConfiguration
;
48 autoReconnectMaxRetries
?: number;
50 workerProcess
?: WorkerProcessType
;
52 workerStartDelay
?: number;
54 elementStartDelay
?: number;
56 workerPoolMinSize
?: number;
58 workerPoolMaxSize
?: number;
60 workerPoolStrategy
?: WorkerChoiceStrategy
;
62 chargingStationsPerWorker
?: number;
63 logStatisticsInterval
?: number;
69 logErrorFile
?: string;