X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fcharging-station%2Fui-server%2FUIServerFactory.ts;h=9d2bc5741c7c30caee778135635e2b98e830e3b3;hb=27e40a3b65c82807a3bf15a0e56b6f24fceb89f8;hp=cdcd251a5d45e8c5c8bd7175ab7519f4b83c5a6e;hpb=fe94fce08a020e0c35e354c2282ec0587a605f4e;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/ui-server/UIServerFactory.ts b/src/charging-station/ui-server/UIServerFactory.ts index cdcd251a..9d2bc574 100644 --- a/src/charging-station/ui-server/UIServerFactory.ts +++ b/src/charging-station/ui-server/UIServerFactory.ts @@ -1,8 +1,12 @@ -import { AbstractUIServer } from './AbstractUIServer'; +import chalk from 'chalk'; + +import type { AbstractUIServer } from './AbstractUIServer'; +import UIHttpServer from './UIHttpServer'; +import { UIServerUtils } from './UIServerUtils'; +import UIWebSocketServer from './UIWebSocketServer'; +import type { UIServerConfiguration } from '../../types/ConfigurationData'; import { ApplicationProtocol } from '../../types/UIProtocol'; import Configuration from '../../utils/Configuration'; -import { ServerOptions } from '../../types/ConfigurationData'; -import UIWebSocketServer from './UIWebSocketServer'; export default class UIServerFactory { private constructor() { @@ -10,13 +14,20 @@ export default class UIServerFactory { } public static getUIServerImplementation( - applicationProtocol: ApplicationProtocol, - options?: ServerOptions, - callback?: () => void + uiServerConfiguration?: UIServerConfiguration ): AbstractUIServer | null { - switch (applicationProtocol) { + if (UIServerUtils.isLoopback(uiServerConfiguration.options?.host) === false) { + console.warn( + chalk.yellow( + 'Loopback address not detected in UI server configuration. This is not recommended.' + ) + ); + } + switch (uiServerConfiguration?.type ?? Configuration.getUIServer().type) { case ApplicationProtocol.WS: - return new UIWebSocketServer(options ?? Configuration.getUIServer().options, callback); + return new UIWebSocketServer(uiServerConfiguration ?? Configuration.getUIServer()); + case ApplicationProtocol.HTTP: + return new UIHttpServer(uiServerConfiguration ?? Configuration.getUIServer()); default: return null; }