useEnumFetch.ts 534 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. };