useEnumFetch.ts 526 B

1234567891011121314151617
  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 | true | Error>
  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. // @ts-ignore
  12. return { fetch }
  13. }