@monstermann/fn
Version:
A utility library for TypeScript.
35 lines (33 loc) • 816 B
JavaScript
import { dfdlT } from "@monstermann/dfdl";
//#region src/option/filter.ts
/**
* `filter(target, predicate)`
*
* Filters a value based on a predicate function. If the value is `null` or `undefined`, it returns the value unchanged. If the value satisfies the predicate, it returns the value. Otherwise, it returns `undefined`.
*
* ```ts
* filter(5, (x) => x > 3); // 5
* filter(2, (x) => x > 3); // undefined
* filter(null, (x) => x > 3); // null
* filter(undefined, (x) => x > 3); // undefined
* ```
*
* ```ts
* pipe(
* 5,
* filter((x) => x > 3),
* ); // 5
*
* pipe(
* 2,
* filter((x) => x > 3),
* ); // undefined
* ```
*/
const filter = dfdlT((target, predicate) => {
if (target == null) return target;
if (!predicate(target)) return void 0;
return target;
}, 2);
//#endregion
export { filter };