| 53 | } |
| 54 | |
| 55 | function checkRequiredFields( |
| 56 | fm: ParsedFrontmatter, |
| 57 | issues: ValidationIssue[] |
| 58 | ): void { |
| 59 | for (const name of REQUIRED_FIELDS) { |
| 60 | const field = fm.fields.get(name); |
| 61 | if (!field) { |
| 62 | issues.push({ |
| 63 | severity: "error", |
| 64 | message: `missing required field: ${name}`, |
| 65 | field: name, |
| 66 | target: "block", |
| 67 | }); |
| 68 | } else if (field.value === null || field.value === undefined || field.value === "") { |
| 69 | issues.push({ |
| 70 | severity: "error", |
| 71 | message: `required field '${name}' is empty`, |
| 72 | field: name, |
| 73 | target: "value", |
| 74 | }); |
| 75 | } |
| 76 | } |
| 77 | } |
| 78 | |
| 79 | function checkEnumFields( |
| 80 | fm: ParsedFrontmatter, |