useEntityFetch.ts 685 B

12345678910111213141516
  1. import {useAsyncData, AsyncData} from "#app";
  2. import {File} from "~/models/Core/File";
  3. import {useEntityManager} from "~/composables/data/useEntityManager";
  4. import ApiResource from "~/models/ApiResource";
  5. import {Ref} from "@vue/reactivity";
  6. export const useEntityFetch = (model: typeof ApiResource, id: Ref<number>, lazy: boolean = false): AsyncData<ApiResource, ApiResource | true> => {
  7. const em = useEntityManager()
  8. //@ts-ignore
  9. return useAsyncData(
  10. File.entity + '_' + id.value, // TODO: je me demande si on a besoin de cette clé? (https://v3.nuxtjs.org/api/composables/use-async-data#params)
  11. () => em.fetch(File, id.value),
  12. { lazy }
  13. )
  14. }