42 lines
826 B
TypeScript
42 lines
826 B
TypeScript
|
|
// 定义后端服务URL和OAuth2配置
|
||
|
|
const API_BASE_URL = process.env.API_BASE_URL
|
||
|
|
const CLIENT_ID = process.env.CLIENT_ID
|
||
|
|
const CLIENT_SECRET = process.env.CLIENT_SECRET
|
||
|
|
|
||
|
|
// 统一的API响应类型
|
||
|
|
type ApiResponse<T = undefined> =
|
||
|
|
| {
|
||
|
|
success: false
|
||
|
|
status: number
|
||
|
|
message: string
|
||
|
|
}
|
||
|
|
| {
|
||
|
|
success: true
|
||
|
|
data: T
|
||
|
|
}
|
||
|
|
|
||
|
|
type PageRecord<T = unknown> = {
|
||
|
|
total: number
|
||
|
|
page: number
|
||
|
|
size: number
|
||
|
|
list: T[]
|
||
|
|
}
|
||
|
|
|
||
|
|
type ExtraReq<T extends (...args: never) => unknown> = T extends (
|
||
|
|
...args: infer P
|
||
|
|
) => unknown
|
||
|
|
? P[0]
|
||
|
|
: never
|
||
|
|
type ExtraResp<T extends (...args: never) => unknown> =
|
||
|
|
Awaited<ReturnType<T>> extends ApiResponse<infer D> ? D : never
|
||
|
|
|
||
|
|
export {
|
||
|
|
API_BASE_URL,
|
||
|
|
CLIENT_ID,
|
||
|
|
CLIENT_SECRET,
|
||
|
|
type ApiResponse,
|
||
|
|
type PageRecord,
|
||
|
|
type ExtraReq,
|
||
|
|
type ExtraResp,
|
||
|
|
}
|