Lecturas de la Misa
getLectures y getEvangelium — las lecturas del día en todos sus ciclos y el Evangelio ya seleccionado.
getLectures
getLectures(date?: Date): Promise<LecturesSchemaOutput[] | undefined>Devuelve todos los conjuntos de lecturas disponibles para el día, uno por ciclo. Así tu app puede ofrecer el ciclo que corresponda o dejar elegir al usuario.
| Parámetro | Tipo | Descripción |
|---|---|---|
date | Date (opcional) | Día a consultar. Por defecto, la fecha de la instancia. |
Según el día, el array contiene:
| Día | Conjuntos | Ejemplo |
|---|---|---|
| Feria del Tiempo Ordinario | ODD (año I) y EVEN (año II) | Lunes de la 11ª semana |
| Domingo o solemnidad | YEAR_A, YEAR_B y YEAR_C | Santísima Trinidad |
| Memoria con lecturas propias | MEMORY | San Bernabé |
| Días con lecturas fijas | ANY | Navidad, Cuaresma, octava de Pascua |
Si el día no tiene lecturas, devuelve un array vacío.
Ejemplo
const lecturas = await breviarium.getLectures(new Date(2025, 5, 16));[
{
"id": "ordinary_time_11_monday",
"cycle": "ODD",
"lecturas": [
{
"ref": "San Ireneo de Lyon, obispo y mártir (s. II): Contra las herejías. Ir más allá del legalismo IV, 13,3",
"texto": "En la Ley hay preceptos naturales que nos dan ya la santidad…",
"type": "COMMENT"
},
{
"ref": "2 Co 6, 1-10: _Damos prueba de que somos ministros de Dios._",
"texto": "Hermanos: Como cooperadores suyos que somos, os exhortamos a no echar en saco roto la gracia de Dios…",
"type": "FIRSTLECTURE"
},
{
"ref": "Mt 5, 38-42: _Yo os digo: No hagáis frente al que os agravia._",
"texto": "En aquel tiempo, dijo Jesús a sus discípulos: \n\n«Habéis oído que se dijo: \"Ojo por ojo, diente por diente\"…",
"type": "GOSPEL"
},
{
"ref": "Sal 97, 1-4: _El Señor da a conocer su victoria._",
"texto": "…",
"type": "PSALM"
}
]
},
{
"id": "ordinary_time_11_monday",
"cycle": "EVEN",
"lecturas": [
{ "ref": "San Ireneo de Lyon, obispo y mártir (s. II): …", "texto": "…", "type": "COMMENT" },
{ "ref": "1 R 21, 1-16: _Nabot ha sido lapidado y está muerto._", "texto": "…", "type": "FIRSTLECTURE" },
{ "ref": "Mt 5, 38-42: _Yo os digo que no hagáis frente al que os agravia._", "texto": "…", "type": "GOSPEL" },
{ "ref": "Sal 5, 2-3.5-7 : _Atiende a mis gemidos, Señor._", "texto": "…", "type": "PSALM" }
]
}
]Campos
LecturesSchemaOutput
| Campo | Tipo | Descripción |
|---|---|---|
id | string | Identificador de la celebración. |
cycle | string | Ciclo del conjunto: ANY, YEAR_A, YEAR_B, YEAR_C, ODD, EVEN o MEMORY. |
lecturas | array | Lecturas del conjunto. |
Cada lectura
| Campo | Tipo | Descripción |
|---|---|---|
ref | string | Cita bíblica y título breve, separados por : (ver formato). En los comentarios, autor y obra. |
texto | string | Texto completo. |
type | string | Qué lectura es. Ver tipos de lectura. |
Tipos de lectura
type | Lectura |
|---|---|
FIRSTLECTURE | Primera lectura |
PSALM | Salmo responsorial |
SECONDLECTURE | Segunda lectura (domingos y solemnidades) |
ACCLAMATION | Aclamación antes del Evangelio |
GOSPEL | Evangelio |
COMMENT | Comentario patrístico o espiritual al Evangelio |
CELEBRATION_FIRSTLECTURE, CELEBRATION_PSALM, CELEBRATION_SECONDLECTURE, CELEBRATION_ACCLAMATION, CELEBRATION_GOSPEL, CELEBRATION_COMMENT | Lecturas propias de la celebración (memoria, fiesta o Misa del día), junto a las de la feria |
SHORT_GOSPEL, SHORT_FIRSTLECTURE, SHORT_SECONDLECTURE, … | Forma breve de una lectura |
ALTERNATIVE_FIRSTLECTURE, ALTERNATIVE_GOSPEL, … | Lectura alternativa |
SECONDPSALM … SEVENTHPSALM, THIRDLECTURE … EIGHTHLECTURE | Lecturas adicionales de la Vigilia Pascual |
Orden de las lecturas
Las lecturas no vienen en el orden en que se proclaman, sino ordenadas alfabéticamente por type (ACCLAMATION, COMMENT, FIRSTLECTURE, GOSPEL, PSALM…). Ordénalas antes de mostrarlas.
const ORDEN = ['FIRSTLECTURE', 'PSALM', 'SECONDLECTURE', 'ACCLAMATION', 'GOSPEL', 'COMMENT'];
function posicion(type: string): number {
const base = type.replace(/^(CELEBRATION_|ALTERNATIVE_|SHORT_)+/, '');
const i = ORDEN.indexOf(base);
return i === -1 ? ORDEN.length : i;
}
const ordenadas = [...conjunto.lecturas].sort((a, b) => posicion(a.type) - posicion(b.type));Elegir el conjunto del día
const [info, conjuntos = []] = await Promise.all([
breviarium.getLiturgyInformation(),
breviarium.getLectures(),
]);
const endYear = Number(info.calendar?.endOfLiturgycalSeason.split('-')[0]);
const conjunto =
conjuntos.find((c) => c.cycle === `YEAR_${info.cycle}`) ??
conjuntos.find((c) => c.cycle === 'MEMORY') ??
conjuntos.find((c) => c.cycle === 'ANY') ??
conjuntos.find((c) => c.cycle === (endYear % 2 === 0 ? 'EVEN' : 'ODD')) ??
conjuntos[0];Es la misma regla que aplica getEvangelium.
getEvangelium
getEvangelium(date?: Date): Promise<EvangeliumSchemaOutput | undefined>Atajo para obtener solo el Evangelio del día, con el ciclo ya resuelto. Para elegir el conjunto de lecturas sigue este orden:
- El del ciclo dominical del año (
YEAR_A,YEAR_BoYEAR_C). MEMORY, si es una memoria con lecturas propias.ANY.EVENuODD, según el año en que termina el año litúrgico (par = año II, impar = año I).- Si nada coincide, el primer conjunto disponible.
De ese conjunto devuelve solo las lecturas de tipo GOSPEL y CELEBRATION_GOSPEL.
| Parámetro | Tipo | Descripción |
|---|---|---|
date | Date (opcional) | Día a consultar. Por defecto, la fecha de la instancia. |
Ejemplo
const evangelio = await breviarium.getEvangelium(new Date(2025, 5, 16));{
"id": "ordinary_time_11_monday",
"cycle": "ODD",
"evangelium_lectiones": [
{
"ref": "Mt 5, 38-42: _Yo os digo: No hagáis frente al que os agravia._",
"texto": "En aquel tiempo, dijo Jesús a sus discípulos: \n\n«Habéis oído que se dijo: \"Ojo por ojo, diente por diente\"…",
"type": "GOSPEL"
}
]
}En Navidad (ANY) devuelve dos evangelios: CELEBRATION_GOSPEL (Jn 1, 1-18) y GOSPEL (Lc 2, 1-14).
Campos
| Campo | Tipo | Descripción |
|---|---|---|
id | string | Identificador de la celebración. |
cycle | string | Ciclo del conjunto elegido. |
evangelium_lectiones | array | Evangelios del día, con los mismos campos que cada lectura. |
Entradas vacías
En algunas memorias, junto al CELEBRATION_GOSPEL aparece una entrada GOSPEL con ref y texto vacíos. Fíltralas antes de mostrarlas:
const evangelios = evangelio?.evangelium_lectiones.filter((e) => e.texto) ?? [];