data.d.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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 Collection {
  42. items: Array<ApiResource>
  43. totalItems: number | undefined
  44. firstPage: number | undefined
  45. lastPage: number | undefined
  46. nextPage: number | undefined
  47. previousPage: number | undefined
  48. }