1 import chalk from
'chalk';
3 import { UIServerUtils
} from
'./UIServerUtils';
4 import { ApplicationProtocol
, type UIServerConfiguration
} from
'../../types';
5 import { Configuration
} from
'../../utils/Configuration';
6 import { type AbstractUIServer
, UIHttpServer
, UIWebSocketServer
} from
'../internal';
8 export class UIServerFactory
{
9 private constructor() {
10 // This is intentional
13 public static getUIServerImplementation(
14 uiServerConfiguration
?: UIServerConfiguration
15 ): AbstractUIServer
| null {
16 if (UIServerUtils
.isLoopback(uiServerConfiguration
.options
?.host
) === false) {
19 'Loopback address not detected in UI server configuration. This is not recommended.'
23 switch (uiServerConfiguration
?.type ?? Configuration
.getUIServer().type) {
24 case ApplicationProtocol
.WS
:
25 return new UIWebSocketServer(uiServerConfiguration
?? Configuration
.getUIServer());
26 case ApplicationProtocol
.HTTP
:
27 return new UIHttpServer(uiServerConfiguration
?? Configuration
.getUIServer());