ProjectCard.utils.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import { PROJECT_STATUS } from '@/lib/constants'
  2. export const inferProjectStatus = (projectStatus: string) => {
  3. let status = undefined
  4. switch (projectStatus) {
  5. case PROJECT_STATUS.ACTIVE_HEALTHY:
  6. status = 'isHealthy'
  7. break
  8. case PROJECT_STATUS.GOING_DOWN:
  9. case PROJECT_STATUS.PAUSING:
  10. status = 'isPausing'
  11. break
  12. case PROJECT_STATUS.INACTIVE:
  13. status = 'isPaused'
  14. break
  15. case PROJECT_STATUS.PAUSE_FAILED:
  16. status = 'isPauseFailed'
  17. break
  18. case PROJECT_STATUS.RESTARTING:
  19. status = 'isRestarting'
  20. break
  21. case PROJECT_STATUS.RESIZING:
  22. status = 'isResizing'
  23. break
  24. case PROJECT_STATUS.RESTORING:
  25. status = 'isRestoring'
  26. break
  27. case PROJECT_STATUS.RESTORE_FAILED:
  28. status = 'isRestoreFailed'
  29. break
  30. case PROJECT_STATUS.UPGRADING:
  31. status = 'isUpgrading'
  32. break
  33. case PROJECT_STATUS.UNKNOWN:
  34. case PROJECT_STATUS.COMING_UP:
  35. status = 'isComingUp'
  36. break
  37. }
  38. return status as InferredProjectStatus
  39. }
  40. export type InferredProjectStatus =
  41. | 'isHealthy'
  42. | 'isPausing'
  43. | 'isPaused'
  44. | 'isPauseFailed'
  45. | 'isRestarting'
  46. | 'isResizing'
  47. | 'isRestoring'
  48. | 'isRestoreFailed'
  49. | 'isComingUp'
  50. | 'isUpgrading'
  51. | undefined