quran-meta
Version:
Library with meta data and functionality related to Holy Quran
34 lines (31 loc) • 1.15 kB
text/typescript
import { findSurahAyahByAyahId } from "./findSurahAyahByAyahId"
import { ManzilList } from "./lists/manzilList"
import { AyahId, ManzilMeta } from "./types"
import { checkValidManzil } from "./validation"
/**
* Retrieves metadata for a specific Manzil (section) of the Quran
*
* @param manzilNum - The number of the Manzil (1-7)
* @returns The metadata for the specified Manzil containing:
* - manzilNum: The Manzil number
* - firstAyahId: ID of the first ayah in the Manzil
* - lastAyahId: ID of the last ayah in the Manzil
* - first: Surah and ayah details of the first ayah
* - last: Surah and ayah details of the last ayah
* @throws Will throw an error if manzilNum is invalid
*/
export function getManzilMeta(manzilNum: number): ManzilMeta {
checkValidManzil(manzilNum)
const [firstAyahId, nextManzilAyahId]: [AyahId, AyahId] = [
ManzilList[manzilNum],
ManzilList[manzilNum + 1]
]
const lastAyahId = nextManzilAyahId - 1
return {
manzilNum,
firstAyahId,
lastAyahId,
first: findSurahAyahByAyahId(firstAyahId),
last: findSurahAyahByAyahId(lastAyahId)
}
}