@cran/lib.vue.ref
Version:
Vue Reactivity Extensions
29 lines (26 loc) • 801 B
text/typescript
import { computed } from "vue";
import { type ArrayPredicate, wrapArrayPredicate } from "./ArrayPredicate";
import { type MaybeWrapped, unwrap } from "../utility";
/**
* @since 0.0.1
* @category Array
* @inheritdoc Array#filter
*/
export function useFilter<T> (
values: MaybeWrapped<Array<MaybeWrapped<
T | boolean | null | undefined
>>>,
predicate: typeof Boolean
): ReturnType<typeof computed<Array<T>>>;
export function useFilter<T> (
values: MaybeWrapped<Array<MaybeWrapped<T>>>,
predicate: ArrayPredicate<T>
): ReturnType<typeof computed<Array<T>>>;
export function useFilter<T> (
values: MaybeWrapped<Array<MaybeWrapped<T>>>,
predicate: ArrayPredicate<T>
) {
return computed(function compute ( ) {
return unwrap(values).filter(wrapArrayPredicate(predicate));
});
}