import type {Booleanish} from '../types' import type {Ref} from 'vue' import {resolveBooleanish} from '../utils' import {computedEager} from '@vueuse/core' // function useBooleanish(el: Ref): ComputedRef // This may possibily be used in Vue 3.3 to include Booleanish and complex types ie Booleanish | string /** * Resolves a Booleanish type reactively to type boolean */ function useBooleanish(el: Ref): Readonly> function useBooleanish(el: Ref): Readonly> function useBooleanish(el: Ref): Readonly> function useBooleanish( el: Ref ): Readonly> function useBooleanish( el: | Ref | Ref | Ref | Ref ): | Readonly> | Readonly> | Readonly> | Readonly> { return computedEager(() => el.value === undefined || el.value === null ? el.value : resolveBooleanish(el.value) ) } export default useBooleanish