useEnumFetch.ts 563 B

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