@sahabaplus/mushaf-engine
Version:
TypeScript implementation of a Quran Mushaf navigation engine
37 lines (36 loc) • 1.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.KingFahadMushaf = void 0;
const mushaf_1 = require("../mushaf");
/**
* Loader for the King Fahad Mushaf edition
*/
class KingFahadMushaf {
/**
* Load a Mushaf from the provided data object
*
* @param data - King Fahad Mushaf data as a JavaScript object (array of pages)
* @returns A new Mushaf instance
*/
static load(data) {
return KingFahadMushaf.createMushafFromPages(data);
}
/**
* Create a Mushaf from parsed JSON page data
*
* @param jsonPages - Array of pages, each containing an array of verse data
* @returns A new Mushaf instance
*/
static createMushafFromPages(jsonPages) {
const pages = [];
for (let i = 0; i < jsonPages.length; i++) {
const pageNumber = i + 1;
const pageVerses = jsonPages[i];
// Create a Verse[] for this page
const verses = pageVerses.map((v) => new mushaf_1.Verse(v.sura, v.ayah, [v.x, v.y], v.lines));
pages.push(new mushaf_1.Page(pageNumber, verses));
}
return new mushaf_1.Mushaf(15, pages.length, pages);
}
}
exports.KingFahadMushaf = KingFahadMushaf;