Parse a YAML frontmatter block into a plain object, or null when it isn't a * mapping. Yields the RAW object for in-place merge — the record from * `parseIssueContent` has defaults baked in and drops author keys we want to * keep verbatim (the caller has already validated parseability).
(frontmatter: string)
| 256 | * `parseIssueContent` has defaults baked in and drops author keys we want to |
| 257 | * keep verbatim (the caller has already validated parseability). */ |
| 258 | function parseFrontmatterObject(frontmatter: string): Record<string, unknown> | null { |
| 259 | let data: unknown |
| 260 | try { |
| 261 | data = parseYaml(frontmatter) |
| 262 | } catch { |
| 263 | return null |
| 264 | } |
| 265 | if (data === null || typeof data !== 'object' || Array.isArray(data)) return null |
| 266 | return data as Record<string, unknown> |
| 267 | } |