XuqmGroup-RNSDK/packages/common/src/config.ts

48 行
1.1 KiB
TypeScript

export interface XuqmInitOptions {
appKey: string
debug?: boolean
}
export interface XuqmConfig {
appId: string
appKey: string
apiUrl: string
imWsUrl: string
fileServiceUrl: string // fetched from remote config
debug: boolean
}
let _config: XuqmConfig | null = null
let _userId: string | null = null
export function initConfigFromRemote(
options: XuqmInitOptions,
remote: { imWsUrl: string; fileServiceUrl: string; apiUrl: string },
): void {
_config = {
appId: options.appKey,
appKey: options.appKey,
apiUrl: remote.apiUrl,
imWsUrl: remote.imWsUrl,
fileServiceUrl: remote.fileServiceUrl,
debug: options.debug ?? false,
}
}
export function getConfig(): XuqmConfig {
if (!_config) throw new Error('[XuqmSDK] Not initialized — call XuqmSDK.initialize() first.')
return _config
}
export function setUserId(userId: string | null): void {
_userId = userId
}
export function getUserId(): string | null {
return _userId
}
export function isInitialized(): boolean {
return _config !== null
}