UNPKG

quran-meta

Version:

Library with meta data and functionality related to Holy Quran

52 lines (50 loc) 1.48 kB
const require_surahList = require('./lists/surahList.cjs'); const require_juzList = require('./lists/juzList.cjs'); const require_manzilList = require('./lists/manzilList.cjs'); const require_pageList = require('./lists/pageList.cjs'); const require_rukuList = require('./lists/rukuList.cjs'); const require_hizbQuarterList = require('./lists/hizbQuarterList.cjs'); //#region src/getList.ts const partNames = [ "surah", "juz", "page", "manzil", "rubAlHizb", "ruku" ]; /** * An object that maps part types to their corresponding data lists. */ const parts = { surah: require_surahList.SurahList, juz: require_juzList.JuzList, rubAlHizb: require_hizbQuarterList.HizbQuarterList, page: require_pageList.PageList, manzil: require_manzilList.ManzilList, ruku: require_rukuList.RukuList }; function toPartFormatter(type) { return type === "surah" ? ([startAyahId, ayahCount]) => ({ startAyahId, ayahCount }) : (ayahId, index) => { const ayahCount = parts[type][index + 2] - ayahId; return { startAyahId: ayahId, ayahCount }; }; } /** * Retrieves a formatted list of Quran parts based on the specified type. * @param type - The type of parts to retrieve (e.g., juz, hizb, rub) * @returns An array of formatted part blocks, excluding the first and last elements */ function getList(type) { const list = parts[type]; return list.slice(1, list.length - 1).map(toPartFormatter(type)); } //#endregion exports.getList = getList; exports.partNames = partNames;