UNPKG

@ghoran/text

Version:
52 lines (51 loc) • 1.93 kB
//#region src/metadata.ts /** * لیست مشخصات رسم الخط‌های مختلف */ const textMetaData = [ { name: "hafs-v3" }, { name: "hafs" }, { name: "hafs-v13" }, { name: "imla" }, { name: "tanzil-simple-clean" }, { name: "tanzil-simple-min" } ]; //#endregion //#region src/load-text.ts /** * مستقیما جیسون مربوط به متن قرآن را ایمپورت می‌کند * @param type - نوع متن قرآن * @returns خروجی مستقیم ایمپورت پویا */ function importText(type) { switch (type) { case "tanzil-simple-clean": return import("./quran-text-tanzil-simple-clean-CUc1aV7t.mjs"); case "tanzil-simple-min": return import("./quran-text-tanzil-simple-min-6MQgkny1.mjs"); case "imla": return import("./quran-text-imla-XtoDRJcv.mjs"); case "hafs": return import("./quran-text-hafs-DI7eOo9X.mjs"); case "hafs-v13": return import("./quran-text-hafs-v13-8co1pnxN.mjs"); case "hafs-v3": return import("./quran-text-hafs-v3-CSWF9CwY.mjs"); case "qpc-v1": return import("./quran-text-qpc-v1-bb7JSNTU.mjs"); case "qpc-v2": return import("./quran-text-qpc-v2-CDpHvewD.mjs"); } } /** * بر اساس نوع ورودی متن قرآن متناظر را بارگیری می‌کند * و نتیجه‌ی آن را کش می‌کند * @param type - نوع متن قرآن */ async function loadText(type, { cacheName = "@ghoran", cachePrefix = "@ghoran" } = {}) { const cacheKey = `/${cachePrefix}/quran-text/${type}?v=0.2`; try { const response = await (await caches.open(cacheName)).match(cacheKey); if (response) return await response.json(); } catch (err) {} const text = (await importText(type)).default; try { await (await caches.open(cacheName)).put(cacheKey, new Response(JSON.stringify(text), { headers: { "content-type": "application/json" } })); } finally { return text; } } //#endregion export { importText, loadText, textMetaData };