ChatGPT-Next-Web/app/config/client.ts

29 lines
646 B
TypeScript

import type { BuildConfig } from './build';
import { getBuildConfig } from './build';
export function getClientConfig() {
if (typeof document !== 'undefined') {
// client side
return JSON.parse(queryMeta('config') || '{}') as BuildConfig;
}
if (typeof process !== 'undefined') {
// server side
return getBuildConfig();
}
}
function queryMeta(key: string, defaultValue?: string): string {
let ret: string;
if (document) {
const meta = document.head.querySelector(
`meta[name='${key}']`,
) as HTMLMetaElement;
ret = meta?.content ?? '';
} else {
ret = defaultValue ?? '';
}
return ret;
}