useEnumFetch.ts 551 B

12345678910111213141516171819
  1. import {useAsyncData, AsyncData} from "#app";
  2. import {Enum} from "~/types/enum/data";
  3. import {useEnumManager} from "~/composables/data/useEnumManager";
  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) => useAsyncData(
  10. enumName,
  11. () => enumManager.fetch(enumName),
  12. { lazy }
  13. )
  14. return { fetch }
  15. }