request.d.ts 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. declare module '@cip/request' {
  2. interface IResponseData<T>{
  3. code: number
  4. data: T
  5. message: string
  6. }
  7. interface IResponsePagingData<T>{
  8. code: number
  9. data: T
  10. message: string
  11. offset?: number
  12. pageNum?: number
  13. limit?: number
  14. total?: number
  15. }
  16. interface IAnyObject{
  17. [propname: string]: any
  18. }
  19. interface IPostOptions {
  20. form?: boolean
  21. autoNotify?: boolean
  22. headers?: IAnyObject
  23. }
  24. interface IGetOptions {
  25. autoNotify?: boolean
  26. headers?: IAnyObject
  27. }
  28. interface IPostParams {
  29. method: 'post'|'put'
  30. apiName: string
  31. url: string
  32. params?: IAnyObject
  33. pathParams?: IAnyObject
  34. data?: IAnyObject
  35. options?: IPostOptions
  36. }
  37. interface IGetParams{
  38. method?: 'get'|'delete' | undefined
  39. apiName: string
  40. url: string
  41. params?: IAnyObject
  42. pathParams?: IAnyObject
  43. options?:IPostOptions
  44. }
  45. // get
  46. function req(
  47. method: 'get'|'delete',
  48. apiName: string,
  49. url: string,
  50. params: IAnyObject,
  51. options?: IGetOptions | { pathParams?: IAnyObject}
  52. ): Promise<IResponsePagingData<any>>
  53. // post
  54. function req(
  55. method: 'post'|'put',
  56. apiName: string,
  57. url: string,
  58. data: IAnyObject,
  59. options?: IPostOptions | { pathParams?: IAnyObject, params?: IAnyObject,}
  60. ): Promise<IResponsePagingData<any>>
  61. // get
  62. function req(getParams: IGetParams | { method: 'get'|'delete'| undefined }): Promise<IResponsePagingData<any>>
  63. // post
  64. function req(postParams: IPostParams | { method: 'post'|'put' }): Promise<IResponsePagingData<any>>
  65. interface IFileRequestParams {
  66. apiName: string
  67. url: string
  68. data?: IAnyObject
  69. pathParams?: IAnyObject
  70. config?: IPostOptions
  71. headers?: IAnyObject
  72. }
  73. interface IUploadParams {
  74. method?: 'post'|'put'
  75. resolveCb?: (data: string|number, servicePath: string) => string
  76. }
  77. interface IDownloadParams{
  78. method?: 'post'|'put'|'get'|'delete'
  79. }
  80. export default req
  81. export const request = req
  82. export class UploadFile {
  83. constructor(uploadParams: IFileRequestParams & IUploadParams);
  84. send(): Promise<IResponseData<any>>
  85. abort(): void
  86. }
  87. export class DownloadFile {
  88. constructor(downloadParams: IFileRequestParams & IDownloadParams);
  89. send(): Promise<IResponseData<any>>
  90. abort(): void
  91. }
  92. }