(value: unknown)
| 69 | } |
| 70 | |
| 71 | export function parseEffortValue(value: unknown): EffortValue | undefined { |
| 72 | if (value === undefined || value === null || value === '') { |
| 73 | return undefined |
| 74 | } |
| 75 | if (typeof value === 'number' && isValidNumericEffort(value)) { |
| 76 | return value |
| 77 | } |
| 78 | const str = String(value).toLowerCase() |
| 79 | if (isEffortLevel(str)) { |
| 80 | return str |
| 81 | } |
| 82 | const numericValue = parseInt(str, 10) |
| 83 | if (!isNaN(numericValue) && isValidNumericEffort(numericValue)) { |
| 84 | return numericValue |
| 85 | } |
| 86 | return undefined |
| 87 | } |
| 88 | |
| 89 | /** |
| 90 | * Numeric values are model-default only and not persisted. |
no test coverage detected