Add deprecation warning for ui server configuration section renaming
authorJérôme Benoit <jerome.benoit@sap.com>
Fri, 13 May 2022 12:06:32 +0000 (14:06 +0200)
committerJérôme Benoit <jerome.benoit@sap.com>
Fri, 13 May 2022 12:06:32 +0000 (14:06 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
src/charging-station/ui-server/UIWebSocketServer.ts
src/types/ConfigurationData.ts
src/utils/Configuration.ts

index abc3ec6730808f522ae83e0ce00e4d4b4f6a33cd..2e03ebc290e726ba3830d37dc5476e3956ca7c7a 100644 (file)
@@ -1,9 +1,10 @@
 import { Protocol, ProtocolVersion } from '../../types/UIProtocol';
-import WebSocket, { OPEN, Server, ServerOptions } from 'ws';
+import WebSocket, { OPEN, Server } from 'ws';
 
 import AbstractUIService from './ui-services/AbstractUIService';
 import Configuration from '../../utils/Configuration';
 import { IncomingMessage } from 'http';
+import { ServerOptions } from '../../types/ConfigurationData';
 import UIServiceFactory from './ui-services/UIServiceFactory';
 import Utils from '../../utils/Utils';
 import logger from '../../utils/Logger';
@@ -13,7 +14,7 @@ export default class UIWebSocketServer extends Server {
   private readonly uiServices: Map<ProtocolVersion, AbstractUIService>;
 
   public constructor(options?: ServerOptions, callback?: () => void) {
-    // Create the WebSocket Server
+    // Create the WebSocket server
     super(options ?? Configuration.getUIServer().options, callback);
     this.chargingStations = new Set<string>();
     this.uiServices = new Map<ProtocolVersion, AbstractUIService>();
index a7b22af6bbcd47c9726398a8ebd5de55d22b057a..93b0b75c6b60058630ea1399f762093e96fc3201 100644 (file)
@@ -1,8 +1,11 @@
+import { ServerOptions as HttpServerOptions } from 'http';
 import { StorageType } from './Storage';
 import { ServerOptions as WSServerOptions } from 'ws';
 import type { WorkerChoiceStrategy } from 'poolifier';
 import { WorkerProcessType } from './Worker';
 
+export type ServerOptions = WSServerOptions & HttpServerOptions;
+
 export enum SupervisionUrlDistribution {
   ROUND_ROBIN = 'round-robin',
   RANDOM = 'random',
@@ -16,7 +19,7 @@ export interface StationTemplateUrl {
 
 export interface UIServerConfiguration {
   enabled?: boolean;
-  options?: WSServerOptions;
+  options?: ServerOptions;
 }
 
 export interface StorageConfiguration {
index 0b0bec774c1465c147f54689de9846aba8faf143..491c377e9372cf7543406c67e49cda1d6f454005 100644 (file)
@@ -1,4 +1,5 @@
 import ConfigurationData, {
+  ServerOptions,
   StationTemplateUrl,
   StorageConfiguration,
   SupervisionUrlDistribution,
@@ -9,7 +10,6 @@ import Constants from './Constants';
 import { EmptyObject } from '../types/EmptyObject';
 import { FileType } from '../types/FileType';
 import { HandleErrorParams } from '../types/Error';
-import { ServerOptions } from 'ws';
 import { StorageType } from '../types/Storage';
 import type { WorkerChoiceStrategy } from 'poolifier';
 import WorkerConstants from '../worker/WorkerConstants';
@@ -46,6 +46,11 @@ export default class Configuration {
   }
 
   static getUIServer(): UIServerConfiguration {
+    if (Configuration.objectHasOwnProperty(Configuration.getConfig(), 'uiWebSocketServer')) {
+      console.error(
+        chalk`{green ${Configuration.logPrefix()}} {red Deprecated configuration section 'uiWebSocketServer' usage. Use 'uiServer' instead}`
+      );
+    }
     let options: ServerOptions = {
       host: Constants.DEFAULT_UI_WEBSOCKET_SERVER_HOST,
       port: Constants.DEFAULT_UI_WEBSOCKET_SERVER_PORT,