quran-meta
Version:
Library with meta data and functionality related to Holy Quran
30 lines (29 loc) • 947 B
text/typescript
import { FixedArray } from "../ts-utils.mjs";
import { AyahId, QuranMeta, SurahInfo } from "../types.mjs";
//#region src/lists/types.d.ts
type RiwayaFullData = {
HizbEighthList?: AyahId[];
HizbQuarterList: AyahId[];
JuzList: AyahId[];
ManzilList: AyahId[];
PageList: AyahId[];
RukuList: AyahId[];
SajdaList: AyahId[];
SurahList: FixedArray<SurahInfo, 116>;
meta: QuranMeta;
};
type RiwayasNames = ["Hafs", "Qalun", "Warsh"];
type RiwayaName = RiwayasNames[number];
type MissingListsPerRiwaya = {
Hafs: ["HizbEighthList"];
Qalun: [];
Warsh: [];
};
type Riwayas = { [k in RiwayaName]: Omit<RiwayaFullData, MissingListsPerRiwaya[k][number]> & {
meta: QuranMeta;
} };
type RiwayaData = Riwayas[RiwayaName];
declare const partNames: readonly ["surah", "juz", "rubAlHizb", "thumunAlHizb", "page", "manzil", "ruku"];
type PartType = (typeof partNames)[number];
//#endregion
export { PartType, RiwayaData, RiwayaName, Riwayas };