Collapse Terce/Sext/None's identical hymn resolution into one helper

Terce, Sext, and None each had a byte-identical 'hymn' case
(resolveCommon(part.textRef.id), no doxology mechanism, no override/
season tiering). Replace all three with a single shared
resolveSelfContainedHymn helper in resolve-common.ts.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01F25189JqjXddUhU9hM9nUS
This commit is contained in:
2026-08-24 07:14:19 -04:00
parent 449472d5aa
commit 72033221c3
4 changed files with 16 additions and 7 deletions
+2 -2
View File
@@ -13,6 +13,7 @@ import {
resolveOfficeWinner,
resolveMinorHourAntiphon,
resolveMinorHourChapter,
resolveSelfContainedHymn,
} from './resolve-common';
import terceDefinitionData from '../data/hours/terce.yml';
import antiphonsData from '../data/hours/terce-antiphons.yml';
@@ -25,8 +26,7 @@ function resolvePart(part: HourPart, day: LiturgicalDay): ResolvedPart[] {
case 'opening-versicle':
return [{ kind: 'versicle', text: resolveCommon(getOpeningVersicleId(day.season, day.winner)) }];
case 'hymn':
// Self-contained, no appendDoxology — see terce-hymn.yml.
return [{ kind: 'hymn', text: resolveCommon(part.textRef.id) }];
return resolveSelfContainedHymn(part);
case 'chapter':
return [{ kind: 'chapter', text: resolveMinorHourChapter('terce', day, part.textRef.id) }];
case 'day-collect':