X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Futils%2FConfiguration.ts;h=8c13db91fa84c0425eb1d5ebcd0c3d0cce46bbea;hb=b3aa9f53cdbf6dac72396c4392e11dcc4c37df65;hp=afc992f8e7841b35f44a49841ee1c63f452e5285;hpb=6c1761d470507ea23d186be61b94ca7375c5144a;p=e-mobility-charging-stations-simulator.git diff --git a/src/utils/Configuration.ts b/src/utils/Configuration.ts index afc992f8..8c13db91 100644 --- a/src/utils/Configuration.ts +++ b/src/utils/Configuration.ts @@ -3,13 +3,15 @@ import path from 'path'; import { fileURLToPath } from 'url'; import chalk from 'chalk'; +import { WorkerChoiceStrategies } from 'poolifier'; -import ConfigurationData, { - StationTemplateUrl, - StorageConfiguration, +import { + type ConfigurationData, + type StationTemplateUrl, + type StorageConfiguration, SupervisionUrlDistribution, - UIServerConfiguration, - WorkerConfiguration, + type UIServerConfiguration, + type WorkerConfiguration, } from '../types/ConfigurationData'; import type { EmptyObject } from '../types/EmptyObject'; import type { HandleErrorParams } from '../types/Error'; @@ -58,11 +60,11 @@ export default class Configuration { ); } let uiServerConfiguration: UIServerConfiguration = { - enabled: true, + enabled: false, type: ApplicationProtocol.WS, options: { - host: Constants.DEFAULT_UI_WEBSOCKET_SERVER_HOST, - port: Constants.DEFAULT_UI_WEBSOCKET_SERVER_PORT, + host: Constants.DEFAULT_UI_SERVER_HOST, + port: Constants.DEFAULT_UI_SERVER_PORT, }, }; if (Configuration.objectHasOwnProperty(Configuration.getConfig(), 'uiServer')) { @@ -71,6 +73,10 @@ export default class Configuration { Configuration.getConfig().uiServer ); } + if (Configuration.isCFEnvironment() === true) { + delete uiServerConfiguration.options.host; + uiServerConfiguration.options.port = parseInt(process.env.PORT); + } return uiServerConfiguration; } @@ -212,7 +218,8 @@ export default class Configuration { ) ? Configuration.getConfig().workerPoolMaxSize : WorkerConstants.DEFAULT_POOL_MAX_SIZE, - poolStrategy: Configuration.getConfig().workerPoolStrategy, + poolStrategy: + Configuration.getConfig().workerPoolStrategy ?? WorkerChoiceStrategies.ROUND_ROBIN, }; if (Configuration.objectHasOwnProperty(Configuration.getConfig(), 'worker')) { workerConfiguration = { ...workerConfiguration, ...Configuration.getConfig().worker }; @@ -372,6 +379,10 @@ export default class Configuration { } } + private static isCFEnvironment(): boolean { + return process.env.VCAP_APPLICATION !== undefined; + } + private static getDefaultPerformanceStorageUri(storageType: StorageType) { const SQLiteFileName = `${Constants.DEFAULT_PERFORMANCE_RECORDS_DB_NAME}.db`; switch (storageType) { @@ -394,6 +405,14 @@ export default class Configuration { return item && typeof item === 'object' && Array.isArray(item) === false; } + private static objectHasOwnProperty(object: unknown, property: string): boolean { + return Object.prototype.hasOwnProperty.call(object, property) as boolean; + } + + private static isUndefined(obj: unknown): boolean { + return typeof obj === 'undefined'; + } + private static deepMerge(target: object, ...sources: object[]): object { if (!sources.length) { return target; @@ -417,14 +436,6 @@ export default class Configuration { return Configuration.deepMerge(target, ...sources); } - private static objectHasOwnProperty(object: unknown, property: string): boolean { - return Object.prototype.hasOwnProperty.call(object, property) as boolean; - } - - private static isUndefined(obj: unknown): boolean { - return typeof obj === 'undefined'; - } - private static handleFileException( logPrefix: string, fileType: FileType,