types.d.ts 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. declare global {
  2. /**
  3. * 接口请求元数据,由应用自行定义,可以在 拦截器中获取
  4. */
  5. interface DageRequestMeta {
  6. /**
  7. * 响应正文格式
  8. * 默认为 `json`
  9. */
  10. responseType?: "text" | "arrayBuffer" | "blob" | "json";
  11. }
  12. }
  13. /**
  14. * 规范化
  15. */
  16. export interface CommonResponse<T = any> {
  17. data: T;
  18. code: number;
  19. errorCode?: number;
  20. errorMessage?: string;
  21. /**
  22. * 原始响应
  23. */
  24. __raw__: {
  25. data: any;
  26. statusCode: number;
  27. header: Record<string, string>;
  28. };
  29. }
  30. /**
  31. * 响应对象
  32. */
  33. export interface DageResponse<T = any> extends CommonResponse<T> {
  34. }
  35. export interface DageRequest extends Required<DageRequestConfig> {
  36. name: string;
  37. body: Record<string, any>;
  38. }
  39. export type DageRequestMethod = "GET" | "POST" | "DELETE" | "PUT" | "PATCH" | "HEAD";
  40. export interface DageRequestConfig {
  41. /**
  42. * 默认为 POST
  43. */
  44. method?: DageRequestMethod;
  45. /**
  46. * 查询字符串
  47. */
  48. searchParams?: Record<string, string>;
  49. /**
  50. * 报头
  51. */
  52. headers?: Record<string, string>;
  53. /**
  54. * 自定义元数据, 可以用于拦截
  55. */
  56. meta?: DageRequestMeta;
  57. }
  58. /**
  59. * 拦截器,可以修改 request 对象,调用 next 发起请求
  60. */
  61. export type Interceptor = (request: DageRequest, next: () => Promise<DageResponse | PaginationResponse>) => Promise<DageResponse | PaginationResponse>;
  62. export interface PaginationResponse<T = any> extends CommonResponse<T[]> {
  63. total: number;
  64. size: number;
  65. pages: number;
  66. }
  67. export interface PaginationParams {
  68. pageSize: number;
  69. pageNum: number;
  70. }
  71. //# sourceMappingURL=types.d.ts.map