@ghoran/text
Version:
52 lines (51 loc) • 1.93 kB
JavaScript
//#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 };