mirror of https://github.com/renovatebot/renovate
32 lines
948 B
TypeScript
32 lines
948 B
TypeScript
import is from '@sindresorhus/is';
|
|
|
|
/**
|
|
* Coerces a value to a number with optional default value.
|
|
* @param val the value to coerce
|
|
* @param def default value
|
|
* @returns cocerced value
|
|
*/
|
|
export function coerceNumber(
|
|
val: number | null | undefined,
|
|
def?: number,
|
|
): number {
|
|
return val ?? def ?? 0;
|
|
}
|
|
|
|
/**
|
|
* Parses a value as a finite positive integer with optional default value.
|
|
* If no default value is provided, the default value is 0.
|
|
* @param val Value to parse as finite integer.
|
|
* @param def Optional default value.
|
|
* @returns The parsed value or the default value if the parsed value is not finite.
|
|
*/
|
|
export function parseInteger(
|
|
val: string | undefined | null,
|
|
def?: number,
|
|
): number {
|
|
// Number.parseInt returns NaN if the value is not a finite integer.
|
|
const parsed =
|
|
is.string(val) && /^\d+$/.test(val) ? Number.parseInt(val, 10) : Number.NaN;
|
|
return Number.isFinite(parsed) ? parsed : (def ?? 0);
|
|
}
|