import { ref, watch, type Ref } from "vue"; import { debounce } from "./debounce"; export function useDebouncedComputed( getter: () => T, deps: () => any, delay: number = 100 ): Ref { const result = ref(); const debouncedUpdate = debounce(() => { result.value = getter(); }, delay); watch(deps, debouncedUpdate, { immediate: true, deep: true }); return result as Ref; }