feat: add initial HTTP/2 support to ui server (mutually exclusive for now)
[e-mobility-charging-stations-simulator.git] / src / charging-station / ui-server / UIServerFactory.ts
index c4006b0396d96c8d5ad50e902bfedf8ea2743c65..49f088377c514f1d90059436fa11aef6cb6695c0 100644 (file)
@@ -4,7 +4,12 @@ import type { AbstractUIServer } from './AbstractUIServer';
 import { UIHttpServer } from './UIHttpServer';
 import { UIServerUtils } from './UIServerUtils';
 import { UIWebSocketServer } from './UIWebSocketServer';
-import { ApplicationProtocol, type UIServerConfiguration } from '../../types';
+import {
+  ApplicationProtocol,
+  ApplicationProtocolVersion,
+  type UIServerConfiguration,
+} from '../../types';
+import { isUndefined } from '../../utils';
 
 export class UIServerFactory {
   private constructor() {
@@ -21,6 +26,13 @@ export class UIServerFactory {
         ),
       );
     }
+    uiServerConfiguration = {
+      ...(uiServerConfiguration.type === ApplicationProtocol.HTTP &&
+        isUndefined(uiServerConfiguration.version) && {
+          version: ApplicationProtocolVersion.VERSION_11,
+        }),
+      ...uiServerConfiguration,
+    };
     switch (uiServerConfiguration.type) {
       case ApplicationProtocol.WS:
         return new UIWebSocketServer(uiServerConfiguration);