UNPKG

quran-meta

Version:

Library with meta data and functionality related to Holy Quran

40 lines (39 loc) 1.6 kB
import { meta } from "./const.mjs"; import { findPage } from "./findPage.mjs"; import { findSurahByAyahId } from "./findSurahByAyahId.mjs"; import { getRubAlHizbMetaByAyahId } from "./getRubAlHizbMetaByAyahId.mjs"; import { HizbQuarterList } from "./lists/hizbList.mjs"; import { JuzList } from "./lists/juzList.mjs"; import { PageList } from "./lists/pageList.mjs"; import { SajdaList } from "./lists/sajdaList.mjs"; import { SurahList } from "./lists/surahList.mjs"; export function getAyahMeta(ayahId) { if (ayahId < 1 || ayahId > meta.numAyahs) throw new RangeError("ayahId must be between 1 and " + meta.numAyahs); const quarterData = getRubAlHizbMetaByAyahId(ayahId); const [surah, ayah] = findSurahByAyahId(ayahId); const page = findPage(-1, ayahId, true); const isSajdahAyah = SajdaList.some(([sajdaAyahId]) => sajdaAyahId === ayahId); const isStartOfSurah = SurahList[surah][0] === ayahId; const isStartOfPage = PageList[page] === ayahId; const isStartOfJuz = JuzList[quarterData.juz] === ayahId; const isStartOfQuarter = HizbQuarterList[quarterData.rubAlHizbId] === ayahId; const isEndOfSurah = SurahList[surah + 1][0] - 1 === ayahId; const isEndOfPage = PageList[page + 1] - 1 === ayahId; const isEndOfJuz = JuzList[quarterData.juz + 1] - 1 === ayahId; const isEndOfQuarter = HizbQuarterList[quarterData.rubAlHizbId + 1] - 1 === ayahId; return { ...quarterData, surah, ayah, isStartOfQuarter, isEndOfQuarter, isSajdahAyah, isStartOfPage, isEndOfPage, isStartOfJuz, isEndOfJuz, isStartOfSurah, isEndOfSurah }; }