@monstermann/fn
Version:
A utility library for TypeScript.
32 lines (30 loc) • 706 B
JavaScript
import { dfdlT } from "@monstermann/dfdl";
//#region src/string/parseIntOrElse.ts
/**
* `parseIntOrElse(target, orElse)`
*
* Parses `target` string and returns an integer, or the result of calling `orElse` function with `target` if parsing fails.
*
* ```ts
* parseIntOrElse("42", () => 0); // 42
* parseIntOrElse("abc", (str) => str.length); // 3
* ```
*
* ```ts
* pipe(
* "42",
* parseIntOrElse(() => 0),
* ); // 42
*
* pipe(
* "abc",
* parseIntOrElse((str) => str.length),
* ); // 3
* ```
*/
const parseIntOrElse = dfdlT((target, orElse) => {
const value = Number.parseInt(target);
return Number.isFinite(value) ? value : orElse(target);
}, 2);
//#endregion
export { parseIntOrElse };