data.d.ts 1.2 KB

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