1 import chalk from
'chalk';
3 import type { UIServerConfiguration
} from
'../../types/ConfigurationData';
4 import { ApplicationProtocol
} from
'../../types/UIProtocol';
5 import Configuration from
'../../utils/Configuration';
6 import type { AbstractUIServer
} from
'./AbstractUIServer';
7 import UIHttpServer from
'./UIHttpServer';
8 import { UIServerUtils
} from
'./UIServerUtils';
9 import UIWebSocketServer from
'./UIWebSocketServer';
11 export default class UIServerFactory
{
12 private constructor() {
13 // This is intentional
16 public static getUIServerImplementation(
17 uiServerConfiguration
?: UIServerConfiguration
18 ): AbstractUIServer
| null {
19 if (UIServerUtils
.isLoopback(uiServerConfiguration
.options
?.host
) === false) {
22 'Loopback address not detected in UI server configuration. This is not recommended.'
26 switch (uiServerConfiguration
?.type ?? Configuration
.getUIServer().type) {
27 case ApplicationProtocol
.WS
:
28 return new UIWebSocketServer(uiServerConfiguration
?? Configuration
.getUIServer());
29 case ApplicationProtocol
.HTTP
:
30 return new UIHttpServer(uiServerConfiguration
?? Configuration
.getUIServer());