import { findJuzAndShift } from "./findJuzAndShift" import { findSurahByAyahId } from "./findSurahByAyahId" import type { RiwayaData } from "./lists/types" import type { AyahNo, Juz, Surah, SurahJuzMeta } from "./types" /** * Finds the SurahJuzMeta for a given Surah and Ayah. * * @param surah - The Surah (chapter) number. * @param ayah - The Ayah (verse) number. * @param data - The Lists object for the riwaya. * @returns The SurahJuzMeta object containing the left juz, ayahs between juz and surah, right juz, ayah ID of first ayah in left juz, and last ayah ID of right juz . */ export function findJuzMetaBySurah(surah: Surah, ayah: AyahNo = 1, data: RiwayaData): SurahJuzMeta { const { juz: leftjuz, ayahsBetweenJuzSurah, leftAyahId } = findJuzAndShift(surah, ayah, data) const { JuzList } = data let rightJuz: Juz = leftjuz while (rightJuz < data.meta.numJuzs && findSurahByAyahId(JuzList[rightJuz + 1], data) === surah) { rightJuz++ } return { ayahsBetweenJuzSurah, leftAyahId, leftjuz, rightAyahId: JuzList[rightJuz + 1], rightJuz // Todo check if this is correct or should be -1 } }