import { ref } from "vue" export function useDataLoader(loader: () => Promise, options: { immediate?: boolean }) { const data = ref() const loading = ref(false) const error = ref() function load() { loading.value = true loader().then((res) => { data.value = res loading.value = false }).catch((err) => { error.value = err loading.value = false }) } if (options.immediate) { load() } return { data, loading, error, load, } }