quran-meta
Version:
Library with meta data and functionality related to Holy Quran
40 lines (39 loc) • 1.6 kB
JavaScript
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
};
}