useEnumFetch.ts 510 B

12345678910111213141516
  1. import type { AsyncData } from '#app'
  2. import { useEnumManager } from '~/composables/data/useEnumManager'
  3. import type { Enum } from '~/types/data'
  4. interface useEnumFetchReturnType {
  5. fetch: (enumName: string) => AsyncData<Enum | null, Error | null>
  6. }
  7. export const useEnumFetch = (lazy: boolean = false): useEnumFetchReturnType => {
  8. const { enumManager } = useEnumManager()
  9. const fetch = (enumName: string) =>
  10. useAsyncData(enumName, () => enumManager.fetch(enumName), { lazy })
  11. return { fetch }
  12. }