392d1ee010f6ab1447cea880fdd311f8d19c21f7
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 { UIServiceUtils
} from
'./ui-services/UIServiceUtils';
8 import UIHttpServer from
'./UIHttpServer';
9 import UIWebSocketServer from
'./UIWebSocketServer';
11 export default class UIServerFactory
{
12 private constructor() {
13 // This is intentional
16 public static getUIServerImplementation(
17 applicationProtocol
: ApplicationProtocol
,
18 uiServerConfiguration
?: UIServerConfiguration
19 ): AbstractUIServer
| null {
20 if (UIServiceUtils
.isLoopback(uiServerConfiguration
.options
?.host
) === false) {
23 'Loopback address not detected in UI server configuration. This is not recommended.'
27 switch (applicationProtocol
) {
28 case ApplicationProtocol
.WS
:
29 return new UIWebSocketServer(uiServerConfiguration
?? Configuration
.getUIServer());
30 case ApplicationProtocol
.HTTP
:
31 return new UIHttpServer(uiServerConfiguration
?? Configuration
.getUIServer());