aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/frontend/src/xtext/fetchBackendConfig.ts
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/frontend/src/xtext/fetchBackendConfig.ts')
-rw-r--r--subprojects/frontend/src/xtext/fetchBackendConfig.ts16
1 files changed, 16 insertions, 0 deletions
diff --git a/subprojects/frontend/src/xtext/fetchBackendConfig.ts b/subprojects/frontend/src/xtext/fetchBackendConfig.ts
new file mode 100644
index 00000000..f8087a70
--- /dev/null
+++ b/subprojects/frontend/src/xtext/fetchBackendConfig.ts
@@ -0,0 +1,16 @@
1/* eslint-disable @typescript-eslint/no-redeclare -- Declare types with their companion objects */
2
3import { z } from 'zod';
4
5export const BackendConfig = z.object({
6 webSocketURL: z.string().url(),
7});
8
9export type BackendConfig = z.infer<typeof BackendConfig>;
10
11export default async function fetchBackendConfig(): Promise<BackendConfig> {
12 const configURL = `${import.meta.env.BASE_URL}config.json`;
13 const response = await fetch(configURL);
14 const rawConfig = (await response.json()) as unknown;
15 return BackendConfig.parse(rawConfig);
16}