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