1 import { ListenOptions
} from
'net';
3 import type { WorkerChoiceStrategy
} from
'poolifier';
4 import { ServerOptions
as WSServerOptions
} from
'ws';
6 import { StorageType
} from
'./Storage';
7 import { WorkerProcessType
} from
'./Worker';
9 export type ServerOptions
= WSServerOptions
& ListenOptions
;
11 export enum SupervisionUrlDistribution
{
12 ROUND_ROBIN
= 'round-robin',
14 SEQUENTIAL
= 'sequential',
17 export interface StationTemplateUrl
{
19 numberOfStations
: number;
22 export interface UIServerConfiguration
{
24 options
?: ServerOptions
;
27 export interface StorageConfiguration
{
33 export interface WorkerConfiguration
{
34 processType
?: WorkerProcessType
;
36 elementsPerWorker
?: number;
37 elementStartDelay
?: number;
40 poolStrategy
?: WorkerChoiceStrategy
;
43 export default interface ConfigurationData
{
44 supervisionUrls
?: string | string[];
45 supervisionUrlDistribution
?: SupervisionUrlDistribution
;
46 stationTemplateUrls
: StationTemplateUrl
[];
47 uiServer
?: UIServerConfiguration
;
48 performanceStorage
?: StorageConfiguration
;
49 worker
?: WorkerConfiguration
;
50 autoReconnectMaxRetries
?: number;
52 workerProcess
?: WorkerProcessType
;
54 workerStartDelay
?: number;
56 elementStartDelay
?: number;
58 workerPoolMinSize
?: number;
60 workerPoolMaxSize
?: number;
62 workerPoolStrategy
?: WorkerChoiceStrategy
;
64 chargingStationsPerWorker
?: number;
65 logStatisticsInterval
?: number;
71 logErrorFile
?: string;