| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import type { EnterpriseAuthRoutes } from '@d8d/server';
- import { createRpcClient } from '@d8d/mini-shared-ui-components';
- export class EnterpriseAuthClientManager {
- private static instance: EnterpriseAuthClientManager;
- private client: ReturnType<typeof createRpcClient<typeof EnterpriseAuthRoutes>> | null = null;
- private constructor() {}
- public static getInstance(): EnterpriseAuthClientManager {
- if (!EnterpriseAuthClientManager.instance) {
- EnterpriseAuthClientManager.instance = new EnterpriseAuthClientManager();
- }
- return EnterpriseAuthClientManager.instance;
- }
- // 初始化客户端
- public init(baseUrl: string = '/'): ReturnType<typeof createRpcClient<typeof EnterpriseAuthRoutes>> {
- return this.client = createRpcClient<typeof EnterpriseAuthRoutes>({ apiBaseUrl: baseUrl });
- }
- // 获取客户端实例
- public get(): ReturnType<typeof createRpcClient<typeof EnterpriseAuthRoutes>> {
- if (!this.client) {
- return this.init()
- }
- return this.client;
- }
- // 重置客户端(用于测试或重新初始化)
- public reset(): void {
- this.client = null;
- }
- }
- // 导出单例实例
- const enterpriseAuthClientManager = EnterpriseAuthClientManager.getInstance();
- // 导出默认客户端实例(延迟初始化)
- export const enterpriseAuthClient = enterpriseAuthClientManager.get()
- export {
- enterpriseAuthClientManager
- }
|