data.d.ts 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import ApiResource from "~/models/ApiResource";
  2. type AnyJson = Record<string, any>
  3. export const enum HTTP_METHOD {
  4. POST = 'POST',
  5. PUT = 'PUT',
  6. GET = 'GET',
  7. DELETE = 'DELETE'
  8. }
  9. interface AssociativeArray {
  10. [key: string]: any;
  11. }
  12. interface Connector {
  13. request(
  14. method: HTTP_METHOD,
  15. url: string,
  16. body: null | any,
  17. params: null | AssociativeArray,
  18. query: null | AssociativeArray
  19. )
  20. }
  21. export const enum METADATA_TYPE {
  22. ITEM,
  23. COLLECTION
  24. }
  25. interface HydraMetadata {
  26. readonly totalItems?: number
  27. firstPage?: number
  28. lastPage?: number
  29. nextPage?: number
  30. previousPage?: number
  31. type?: METADATA_TYPE
  32. }
  33. interface ApiResponse {
  34. data: AnyJson
  35. metadata: HydraMetadata
  36. }
  37. interface ApiCollection extends ApiResponse {
  38. data: AnyJson
  39. metadata: HydraMetadata
  40. }
  41. interface Pagination {
  42. first?: number
  43. last?: number
  44. next?: number
  45. previous?: number
  46. }
  47. interface Collection {
  48. items: Array<ApiResource>
  49. pagination: Pagination
  50. totalItems: number | undefined
  51. }