@allemandi/bible-validate
Version:
Fast, type-safe utilities for parsing, validating, and normalizing Bible references.
67 lines • 3.54 kB
TypeScript
/**
* Checks if a given book name or alias corresponds to a valid Bible book.
* @public
* @param {string|null|undefined} book - The name or alias of the book to lookup, which will be normalized internally.
* @returns {boolean} - True if the book exists in the Bible collection, false otherwise.
* @example
* // Valid full book name returns true
* isValidBook('Genesis'); // true
* // Valid alias, case-insensitive, returns true
* isValidBook('gEn'); // true
* // Unknown book returns false
* isValidBook('Judas'); // false
* // Empty string returns false
* isValidBook(''); // false
* // Null or undefined input returns false
* isValidBook(null); // false
* isValidBook(undefined); // false
*/
export function isValidBook(book: string | null | undefined): boolean;
/**
* Checks if the given chapter number is valid for the specified Bible book.
* @public
* @param {string} book - The name or alias of the book to lookup, which will be normalized internally.
* @param {number} chapter - The chapter number to check, expected to be a positive integer.
* @returns {boolean} - True if the chapter is within the valid range for the book; otherwise, false.
* @example
* // Valid chapters for Genesis include 1 and 50
* isValidChapter('Genesis', 1); // true
* isValidChapter('Genesis', 50); // true
* // Invalid chapters are below 1 or above the book's chapter count
* isValidChapter('Genesis', 0); // false
* isValidChapter('Genesis', 51); // false
* isValidChapter('Genesis', -1); // false
* // Returns false if the book is unknown or input is null/undefined
* isValidChapter('Judas', 1); // false
* isValidChapter(null, 1); // false
* isValidChapter('Genesis', null); // false
*/
export function isValidChapter(book: string, chapter: number): boolean;
/**
* Validates whether a given Bible reference consisting of book, chapter, and verse(s) is valid.
* @public
* @param {string} book - The name or alias of the book to lookup, which will be normalized internally.
* @param {number} chapter - The chapter number, must be a positive integer within the book's chapter count.
* @param {number} verseStart - The starting verse number, must be a positive integer within the chapter's verse count.
* @param {number|null} [verseEnd=null] - Optional ending verse number, must be greater than or equal to verseStart and within the chapter's verse count if provided.
* @returns {boolean} True if the reference is valid within the book's chapter and verse bounds, otherwise false.
* @example
* // Valid single verse in Genesis chapter 1
* isValidReference('Genesis', 1, 1); // true
* // Valid last verse in Genesis chapter 1
* isValidReference('Genesis', 1, 31); // true
* // Invalid verse number exceeding the number of verses in chapter 1 of Genesis
* isValidReference('Genesis', 1, 32); // false
* // Invalid chapter number (0) in Genesis
* isValidReference('Genesis', 0, 1); // false
* // Invalid verse number (0) in Genesis chapter 1
* isValidReference('Genesis', 1, 0); // false
* // Invalid unknown book name returns false
* isValidReference('Blah', 1, 1); // false
* // Reference with a verse range, valid only if verseEnd >= verseStart and within chapter verse count
* isValidReference('Genesis', 1, 1, 5); // true
* // Case-insensitive book name input is accepted
* isValidReference('gEnEsIs', 1, 1); // true
*/
export function isValidReference(book: string, chapter: number, verseStart: number, verseEnd?: number | null): boolean;
//# sourceMappingURL=validator.d.ts.map