/** * 接口客户端单例。网页版走 cookie(写操作由 api-client 自动带 X-CSRF-Token); * 桌面版以后在这里传 getToken(从系统钥匙串取 Bearer 令牌),业务代码不用改。 */ import { ApiError, createApi, type ClientOptions } from "@bid-doctor/api-client"; import { runtimeConfig } from "./config"; export const apiOptions: ClientOptions = { baseUrl: runtimeConfig.apiBaseUrl }; export const api = createApi(apiOptions); /** 网络中断等非接口错误也包成「请求失败」,界面统一处理。 */ export function errorTitle(e: unknown): string { if (e instanceof ApiError) return e.problem.title; return "网络连接失败,请检查网络后重试"; } export function isApiError(e: unknown, code?: string): e is ApiError { return e instanceof ApiError && (code === undefined || e.code === code); }