(value: unknown, fieldName: string)
| 105 | } |
| 106 | |
| 107 | function parseInteger(value: unknown, fieldName: string): number { |
| 108 | if (typeof value === "number") { |
| 109 | assert(Number.isInteger(value), `${fieldName} should be an integer number`); |
| 110 | return value; |
| 111 | } |
| 112 | |
| 113 | if (typeof value === "bigint") { |
| 114 | const coerced = Number(value); |
| 115 | assert(Number.isSafeInteger(coerced), `${fieldName} should coerce to a safe integer`); |
| 116 | return coerced; |
| 117 | } |
| 118 | |
| 119 | throw new TypeError(`${fieldName} should be an integer-compatible value`); |
| 120 | } |
| 121 | |
| 122 | function parseBooleanFromInteger(value: unknown, fieldName: string): boolean { |
| 123 | const parsed = parseInteger(value, fieldName); |
no test coverage detected