feat: initialize TJWater WebGIS frontend
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
import { z } from "zod";
|
||||
|
||||
const runtimeBoolean = (defaultValue: boolean) =>
|
||||
z
|
||||
.enum(["true", "false"])
|
||||
.default(defaultValue ? "true" : "false")
|
||||
.transform((value) => value === "true");
|
||||
|
||||
const runtimeConfigSchema = z.object({
|
||||
TJWATER_MAPBOX_ACCESS_TOKEN: z.string().default(""),
|
||||
TJWATER_MAP_URL: z.string().url().default("https://geoserver.waternetwork.cn/geoserver"),
|
||||
TJWATER_GEOSERVER_WORKSPACE: z.string().min(1).default("tjwater"),
|
||||
TJWATER_AGENT_API_BASE_URL: z.string().url().default("http://127.0.0.1:8787"),
|
||||
TJWATER_ENABLE_DEV_PANEL: runtimeBoolean(false),
|
||||
TJWATER_ENABLE_MSW: runtimeBoolean(false)
|
||||
});
|
||||
|
||||
declare global {
|
||||
var __TJWATER_CONFIG__: unknown;
|
||||
}
|
||||
|
||||
export type RuntimeConfig = z.infer<typeof runtimeConfigSchema>;
|
||||
|
||||
export function parseRuntimeConfig(value: unknown): RuntimeConfig {
|
||||
return runtimeConfigSchema.parse(value ?? {});
|
||||
}
|
||||
|
||||
export const env = parseRuntimeConfig(globalThis.__TJWATER_CONFIG__);
|
||||
Reference in New Issue
Block a user