@shencom/api
Version:
shencom api group
36 lines (31 loc) • 981 B
text/typescript
import type { Http } from './type';
interface ApiConfigStore {
http?: Http;
url?: string;
initialized: boolean;
}
// 使用一个不可导出的内部变量来存储配置
const globalApiConfig: ApiConfigStore = {
initialized: false,
};
/**
* 初始化 API 配置。此函数应在应用启动时调用一次。
* @param http Http 实例
* @param url API 基础 URL
*/
export function init(http: Http, url: string): void {
globalApiConfig.http = http;
globalApiConfig.url = url;
globalApiConfig.initialized = true;
}
/**
* 获取已初始化的配置。
* 如果未初始化,将抛出错误。
* @internal 仅供包内部API函数使用
*/
export function getInitializedApiConfig(): { http: Http; url: string } {
if (!globalApiConfig.initialized || !globalApiConfig.http) {
throw new Error('API not initialized. Call init(http, url) before using any API functions.');
}
return { http: globalApiConfig.http, url: globalApiConfig.url || '' };
}