X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fcharging-station%2Fui-server%2FUIServerFactory.ts;h=fe2b36d22a3f39375800447beb895448e1cabd77;hb=c5ecc04daa3a6102cd586af446547dee585d506b;hp=c4006b0396d96c8d5ad50e902bfedf8ea2743c65;hpb=864e5f8d63cb09c2f4d6ac46b80ea15e34cc9a04;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 c4006b03..fe2b36d2 100644 --- a/src/charging-station/ui-server/UIServerFactory.ts +++ b/src/charging-station/ui-server/UIServerFactory.ts @@ -1,33 +1,52 @@ -import chalk from 'chalk'; +import chalk from 'chalk' -import type { AbstractUIServer } from './AbstractUIServer'; -import { UIHttpServer } from './UIHttpServer'; -import { UIServerUtils } from './UIServerUtils'; -import { UIWebSocketServer } from './UIWebSocketServer'; -import { ApplicationProtocol, type UIServerConfiguration } from '../../types'; +import type { AbstractUIServer } from './AbstractUIServer.js' +import { UIHttpServer } from './UIHttpServer.js' +import { UIServerUtils } from './UIServerUtils.js' +import { UIWebSocketServer } from './UIWebSocketServer.js' +import { + ApplicationProtocol, + ApplicationProtocolVersion, + type UIServerConfiguration +} from '../../types/index.js' +// eslint-disable-next-line @typescript-eslint/no-extraneous-class export class UIServerFactory { - private constructor() { + private constructor () { // This is intentional } - public static getUIServerImplementation( - uiServerConfiguration: UIServerConfiguration, - ): AbstractUIServer | null { - if (UIServerUtils.isLoopback(uiServerConfiguration.options!.host!) === false) { + public static getUIServerImplementation ( + uiServerConfiguration: UIServerConfiguration + ): AbstractUIServer | undefined { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + if (!UIServerUtils.isLoopback(uiServerConfiguration.options!.host!)) { console.warn( chalk.yellow( - 'Loopback address not detected in UI server configuration. This is not recommended.', - ), - ); + 'Loopback address not detected in UI server configuration. This is not recommended.' + ) + ) + } + uiServerConfiguration = { + version: ApplicationProtocolVersion.VERSION_11, + ...uiServerConfiguration + } + if ( + uiServerConfiguration.type === ApplicationProtocol.WS && + uiServerConfiguration.version !== ApplicationProtocolVersion.VERSION_11 + ) { + console.warn( + chalk.yellow( + `Only version ${ApplicationProtocolVersion.VERSION_11} is supported for WebSocket UI server. Falling back to version ${ApplicationProtocolVersion.VERSION_11}.` + ) + ) + uiServerConfiguration.version = ApplicationProtocolVersion.VERSION_11 } switch (uiServerConfiguration.type) { case ApplicationProtocol.WS: - return new UIWebSocketServer(uiServerConfiguration); + return new UIWebSocketServer(uiServerConfiguration) case ApplicationProtocol.HTTP: - return new UIHttpServer(uiServerConfiguration); - default: - return null; + return new UIHttpServer(uiServerConfiguration) } } }