Open source saints martyrology!
Generates saints info of the Roman Catholic Church.
Supports Node v18+, Modern Browsers (desktop and mobile).
Install module:
npm i sanctus
import {SaintInfo, Sanctus} from "sanctus";
const sanctus = new Sanctus();
// Get a single saint for February 17, 2025
const saint: SaintInfo | undefined = sanctus.getSaint(new Date(2025, 1, 17));
console.log(saint?.name); // "San Teodoro de Bizancio"
// Get a saint using month (0-11) and day
const saintByDate: SaintInfo | undefined = sanctus.getSaintFromMonthDay(2, 17);
console.log(saintByDate?.name); // "San Teodoro de Bizancio"
// Get all saints of the current day
const sanctus = new Sanctus();
const saintsOfDay: SaintInfo[] = sanctus.getSaintsOfDay();
console.log(saintsOfDay);
// Set a new date
sanctus.setDate(new Date(2025, 5, 1));
const saintsFromNewDate: SaintInfo[] = sanctus.getSaintsOfDay();
console.log(saintsFromNewDate);
To run the test suite (with vitest), execute:
To run the app:
# linux and mac users:
make test
# for windows users:
npm run test
The SanctusInterface
provides methods to retrieve information about saints based on dates or direct month/day lookups.
export interface SanctusInterface {
getSaint: (date?: Date) => SaintInfo | undefined;
getSaintFromMonthDay: (month: number, day: number) => SaintInfo | undefined;
getSaintsOfDay: (date?: Date) => SaintInfo[];
getAllSaints: () => SaintInfo[];
getCurrentDate: () => Date;
setDate: (date: Date) => void;
}
Method | Description | Parameters | Return Type | Example Call |
---|---|---|---|---|
getSaint |
single saint info for the given date. | date?: Date |
SaintInfo | undefined |
sanctus.getSaint(new Date(2025, 1, 17)); |
getSaintFromMonthDay |
single saint for month and day. | month: number, day: number |
SaintInfo | undefined |
sanctus.getSaintFromMonthDay(2, 17); |
getSaintsOfDay |
all saints for the given date. | date?: Date |
SaintInfo[] |
sanctus.getSaintsOfDay(); |
getAllSaints |
all saints in the database. | None |
SaintInfo[] |
sanctus.getAllSaints(); |
getCurrentDate |
currently set date in the instance. | None |
Date |
sanctus.getCurrentDate(); |
setDate |
Sets a new date | date: Date |
void |
sanctus.setDate(new Date(2025, 5, 1)); |
export type SaintInfo = {
month: number;
day: number;
category: number;
name: string;
birth?: string;
dead?: string;
meaning?: string;
shortDescription?: string;
description?: string;
};
Property | Type | Required | Description |
---|---|---|---|
month |
number |
✅ Yes | Month of the saint's feast day (1-12). |
day |
number |
✅ Yes | Day of the saint's feast day (1-31). |
category |
number |
✅ Yes | Category or rank of the saint: principal or not. |
name |
string |
✅ Yes | Name of the saint. |
birth |
string |
❌ No | Birth year or approximate time. |
dead |
string |
❌ No | Death year or approximate time. |
meaning |
string |
❌ No | Meaning or significance of the saint's name. |
shortDescription |
string |
❌ No | Brief summary of the saint. |
description |
string |
❌ No | Detailed description of the saint's life. |