24 lines
594 B
TypeScript
24 lines
594 B
TypeScript
import {WaitForSync} from './resolvable';
|
|
|
|
export interface ClientConfig {
|
|
EXTERNAL_BASE_URL: string
|
|
}
|
|
|
|
let config: ClientConfig|undefined;
|
|
const configWaiter = new WaitForSync<ClientConfig>();
|
|
|
|
export function setConfig(clientConfig: ClientConfig): void {
|
|
config = clientConfig;
|
|
configWaiter.setData(config);
|
|
}
|
|
|
|
export function getConfig(): Promise<ClientConfig> {
|
|
return configWaiter.resolve();
|
|
}
|
|
|
|
export async function getUserInfo(): Promise<UserInfo|undefined> {
|
|
const config = await getConfig();
|
|
const res = await fetch(config.EXTERNAL_BASE_URL + "/api/user");
|
|
return res.json();
|
|
}
|