(value: unknown)
| 514 | * Returns `undefined` for empty or unrecognized values. |
| 515 | */ |
| 516 | export function parseOptionalBooleanInput(value: unknown): boolean | undefined { |
| 517 | if (value === undefined || value === null || value === '') { |
| 518 | return undefined |
| 519 | } |
| 520 | |
| 521 | if (typeof value === 'boolean') { |
| 522 | return value |
| 523 | } |
| 524 | |
| 525 | if (typeof value === 'number') { |
| 526 | return value !== 0 |
| 527 | } |
| 528 | |
| 529 | if (typeof value !== 'string') { |
| 530 | return undefined |
| 531 | } |
| 532 | |
| 533 | const normalized = value.trim().toLowerCase() |
| 534 | if (normalized.length === 0) { |
| 535 | return undefined |
| 536 | } |
| 537 | |
| 538 | if (normalized === 'true' || normalized === '1') { |
| 539 | return true |
| 540 | } |
| 541 | |
| 542 | if (normalized === 'false' || normalized === '0') { |
| 543 | return false |
| 544 | } |
| 545 | |
| 546 | return undefined |
| 547 | } |
| 548 | |
| 549 | const DEFAULT_MULTIPLE_FILES_ERROR = |
| 550 | 'File reference must be a single file, not an array. Use <block.files[0]> to select one file.' |
no outgoing calls
no test coverage detected