refactor: ky

This commit is contained in:
skytek_xinliang
2026-05-07 11:17:30 +08:00
parent 87fbc1dda8
commit 71683482e1
15 changed files with 146 additions and 360 deletions
+7 -14
View File
@@ -1,21 +1,14 @@
import axios, { type AxiosInstance } from 'axios'
import { setupInterceptors } from './interceptors'
import ky, { type KyInstance } from 'ky'
import { createHooks } from './interceptors'
// HTTP ClientAxios instance
//
// 設計重點:
// - 透過單一 axios instance 統一管理 baseURL、timeout、headers 與攔截器
// - 預設 baseURL 使用 `/api`:搭配 Vite proxy 轉送到後端 dev server
// - 攔截器集中在 `interceptors.ts`,避免 client.ts 變得難維護
function createClient(): AxiosInstance {
function createClient(): KyInstance {
const baseURL = import.meta.env.VITE_API_BASE_URL || '/service/api'
const client = axios.create({
baseURL,
return ky.create({
prefix: baseURL,
timeout: 10_000,
withCredentials: true,
credentials: 'include',
hooks: createHooks(),
})
setupInterceptors(client)
return client
}
export const httpClient = createClient()