aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/frontend
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2023-09-04 18:08:59 +0200
committerLibravatar Kristóf Marussy <kristof@marussy.com>2023-09-04 20:33:55 +0200
commit0e7c55f7ab8d496e81a3dbd53f14e0c46cb27fa6 (patch)
tree3df27544768e96ec8508452d07b9c20c30f374b0 /subprojects/frontend
parentrefactor(frontend): graph visualizer performance (diff)
downloadrefinery-0e7c55f7ab8d496e81a3dbd53f14e0c46cb27fa6.tar.gz
refinery-0e7c55f7ab8d496e81a3dbd53f14e0c46cb27fa6.tar.zst
refinery-0e7c55f7ab8d496e81a3dbd53f14e0c46cb27fa6.zip
refactor: server environemntal variables
* Prefix each variable with REFINERY_ * If not public host is specified, allow all origings and compute the WebSocket address on the client from the origin.
Diffstat (limited to 'subprojects/frontend')
-rw-r--r--subprojects/frontend/config/detectDevModeOptions.ts4
-rw-r--r--subprojects/frontend/src/xtext/BackendConfig.ts2
-rw-r--r--subprojects/frontend/src/xtext/XtextWebSocketClient.ts5
3 files changed, 7 insertions, 4 deletions
diff --git a/subprojects/frontend/config/detectDevModeOptions.ts b/subprojects/frontend/config/detectDevModeOptions.ts
index 665204dc..6052e047 100644
--- a/subprojects/frontend/config/detectDevModeOptions.ts
+++ b/subprojects/frontend/config/detectDevModeOptions.ts
@@ -30,8 +30,8 @@ function detectListenOptions(
30 fallbackHost: string, 30 fallbackHost: string,
31 fallbackPort: number, 31 fallbackPort: number,
32): ListenOptions { 32): ListenOptions {
33 const host = process.env[`${name}_HOST`] ?? fallbackHost; 33 const host = process.env[`REFINERY_${name}_HOST`] ?? fallbackHost;
34 const rawPort = process.env[`${name}_PORT`]; 34 const rawPort = process.env[`REFINERY_${name}_PORT`];
35 const port = rawPort === undefined ? fallbackPort : parseInt(rawPort, 10); 35 const port = rawPort === undefined ? fallbackPort : parseInt(rawPort, 10);
36 const secure = port === 443; 36 const secure = port === 443;
37 return { host, port, secure }; 37 return { host, port, secure };
diff --git a/subprojects/frontend/src/xtext/BackendConfig.ts b/subprojects/frontend/src/xtext/BackendConfig.ts
index 4c7eac5f..e7043bd5 100644
--- a/subprojects/frontend/src/xtext/BackendConfig.ts
+++ b/subprojects/frontend/src/xtext/BackendConfig.ts
@@ -11,7 +11,7 @@ import { z } from 'zod';
11export const ENDPOINT = 'config.json'; 11export const ENDPOINT = 'config.json';
12 12
13const BackendConfig = z.object({ 13const BackendConfig = z.object({
14 webSocketURL: z.string().url(), 14 webSocketURL: z.string().url().optional(),
15}); 15});
16 16
17type BackendConfig = z.infer<typeof BackendConfig>; 17type BackendConfig = z.infer<typeof BackendConfig>;
diff --git a/subprojects/frontend/src/xtext/XtextWebSocketClient.ts b/subprojects/frontend/src/xtext/XtextWebSocketClient.ts
index 6bb7eec8..963c1d4c 100644
--- a/subprojects/frontend/src/xtext/XtextWebSocketClient.ts
+++ b/subprojects/frontend/src/xtext/XtextWebSocketClient.ts
@@ -282,7 +282,10 @@ export default class XtextWebSocketClient {
282 log.debug('Creating WebSocket'); 282 log.debug('Creating WebSocket');
283 283
284 (async () => { 284 (async () => {
285 const { webSocketURL } = await fetchBackendConfig(); 285 let { webSocketURL } = await fetchBackendConfig();
286 if (webSocketURL === undefined) {
287 webSocketURL = `${window.origin.replace(/^http/, 'ws')}/xtext-service`;
288 }
286 this.openWebSocketWithURL(webSocketURL); 289 this.openWebSocketWithURL(webSocketURL);
287 })().catch((error) => { 290 })().catch((error) => {
288 log.error('Error while initializing connection', error); 291 log.error('Error while initializing connection', error);