import { onMounted, Ref, ref, UnwrapRef } from 'vue' import { FormData } from '../types/FormData' export default function useFormData( baseFormData: T, formDataPreparationFunction: (formData: T) => Promise = async ( formData: T ) => formData, setupWatchersFunction?: (formDataRef: Ref) => void ) { const formData = ref(null) onMounted(async () => { formData.value = (await formDataPreparationFunction( baseFormData )) as UnwrapRef if (setupWatchersFunction) setupWatchersFunction(formData as Ref) }) return { formData } }