29 lines
646 B
TypeScript
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;
|
|
}
|