1
0
mirror of https://github.com/amir20/dozzle.git synced 2025-12-26 23:21:41 +01:00
Files
dozzle/assets/stores/config.ts
2023-05-03 10:11:09 -07:00

39 lines
1012 B
TypeScript

const text = document.querySelector("script#config__json")?.textContent || "{}";
interface Config {
version: string;
base: string;
authorizationNeeded: boolean | "false" | "true";
secured: boolean | "false" | "true";
maxLogs: number;
hostname: string;
hosts: string[] | string;
}
const pageConfig = JSON.parse(text);
const config: Config = {
maxLogs: 600,
...pageConfig,
};
if (config.version == "{{ .Version }}") {
config.version = "master";
config.base = "";
config.authorizationNeeded = false;
config.secured = false;
config.hostname = "localhost";
config.hosts = ["localhost"];
} else {
config.version = config.version.replace(/^v/, "");
config.authorizationNeeded = config.authorizationNeeded === "true";
config.secured = config.secured === "true";
config.hosts = (config.hosts as string).split(",");
}
export default config as Omit<Config, "hosts" | "authorizationNeeded" | "secured"> & {
hosts: string[];
authorizationNeeded: boolean;
secured: boolean;
};