EQuran NPM Package
Official Node.js SDK untuk EQuran.id API v2. Akses data Al-Quran, Tafsir, dan Audio dengan mudah!
Tentang EQuran Package
SDK resmi yang menyediakan akses lengkap ke data Al-Quran dengan fitur caching dan TypeScript support
Fitur Utama
Semua 114 Surat dengan 6,236 Ayat lengkap dengan teks Arab, Latin, dan terjemahan Indonesia
Interpretasi lengkap untuk setiap ayat Al-Quran
6 Qari terkenal: Abdullah Al-Juhany, Abdul Muhsin Al-Qasim, dll
In-memory cache dengan TTL support untuk performa optimal
Full type definitions untuk pengalaman development yang lebih baik
Support ESM dan CommonJS untuk kompatibilitas maksimal
Instalasi
Pasang package menggunakan package manager pilihan Anda
npm
npm install equranyarn
yarn add equranpnpm
pnpm add equranQuick Start
Mulai menggunakan EQuran package dalam hitungan menit
import { EQuran } from 'equran';
const quran = new EQuran();
// Get all surahs
const surahs = await quran.getAllSurat();
// Get a specific surah with all verses
const alFatihah = await quran.getSurat(1);
// Get tafsir
const tafsir = await quran.getTafsir(1);API Reference
Daftar lengkap fungsi yang tersedia
CoreFungsi Utama
| Fungsi | Deskripsi |
|---|---|
| getAllSurat() | Mendapatkan daftar semua 114 surat |
| getSurat(nomor) | Mendapatkan detail surat dengan semua ayat |
| getTafsir(nomor) | Mendapatkan tafsir untuk suatu surat |
HelperFungsi Pembantu
| Fungsi | Deskripsi |
|---|---|
| getAyat(suratNomor, ayatNomor) | Mendapatkan satu ayat spesifik |
| getAyatRange(suratNomor, from, to) | Mendapatkan rentang ayat |
| getSuratByName(name) | Mencari surat berdasarkan nama Latin |
| searchSurat(keyword) | Pencarian surat berdasarkan keyword |
| getMakkiyahSurat() | Mendapatkan semua surat Makkiyah (86 surat) |
| getMadaniyahSurat() | Mendapatkan semua surat Madaniyah (28 surat) |
AudioFungsi Audio
| Fungsi | Deskripsi |
|---|---|
| getAudioFull(suratNomor, qariId?) | Mendapatkan URL audio full surat |
| getAudioAyat(suratNomor, ayatNomor, qariId?) | Mendapatkan URL audio per ayat |
| getQariList() | Mendapatkan daftar Qari yang tersedia |
UtilityFungsi Utilitas
| Fungsi | Deskripsi |
|---|---|
| getTafsirAyat(suratNomor, ayatNomor) | Mendapatkan tafsir untuk ayat spesifik |
| getRandomAyat() | Mendapatkan ayat acak dengan konteks surat |
| getSuratInfo(nomor) | Info surat tanpa ayat (lebih ringan) |
| getNextSurat(currentNomor) | Mendapatkan surat selanjutnya |
| getPrevSurat(currentNomor) | Mendapatkan surat sebelumnya |
AdvancedFungsi Lanjutan
| Fungsi | Deskripsi |
|---|---|
| getSuratWithTafsir(nomor) | Surat + Tafsir dalam satu panggilan (parallel) |
| bulkGetSurat(nomorList) | Fetch multiple surat secara parallel |
CacheManajemen Cache
| Fungsi | Deskripsi |
|---|---|
| clearCache() | Menghapus semua data cache |
| getCacheStats() | Statistik cache (hits, misses, size, hitRate) |
| pruneCache() | Menghapus cache entries yang expired |
Konfigurasi
Opsi konfigurasi yang tersedia
const quran = new EQuran({
// Base API URL (default: https://equran.id/api/v2)
baseUrl: 'https://equran.id/api/v2',
// Request timeout in milliseconds (default: 30000)
timeout: 30000,
// Cache configuration
cache: {
enabled: true, // Enable caching (default: true)
ttl: 60 * 60 * 1000, // TTL in ms (default: 1 hour)
maxSize: 200, // Max cache entries (default: 200)
}
});TypeScript Support
Semua types tersedia untuk digunakan
import type {
Surat,
SuratDetail,
Ayat,
TafsirDetail,
TafsirAyat,
QariInfo,
RandomAyat,
AyatRange,
SuratWithTafsir,
EQuranConfig,
CacheStats,
AudioMap,
} from 'equran';Error Handling
Menangani error dengan baik
import { EQuran, EQuranApiError } from 'equran';
try {
const surah = await quran.getSurat(999);
} catch (error) {
if (error instanceof EQuranApiError) {
console.error(`API Error: ${error.message}`);
console.error(`Status Code: ${error.statusCode}`);
console.error(`Endpoint: ${error.endpoint}`);
}
}Contoh Penggunaan
Implementasi praktis untuk berbagai use case
📅 Daily Verse Widget
async function getDailyVerse() {
const quran = new EQuran();
const random = await quran.getRandomAyat();
return {
surah: random.suratNamaLatin,
verse: random.ayat.nomorAyat,
arabic: random.ayat.teksArab,
translation: random.ayat.teksIndonesia,
audio: random.ayat.audio['05'],
};
}📖 Quran Reader
async function readSurah(nomor: number) {
const quran = new EQuran();
const surah = await quran.getSurat(nomor);
console.log(`${surah.namaLatin} (${surah.nama})`);
console.log(`${surah.tempatTurun} | ${surah.jumlahAyat} verses`);
console.log(`Meaning: ${surah.arti}\n`);
for (const ayat of surah.ayat) {
console.log(`[${ayat.nomorAyat}] ${ayat.teksArab}`);
console.log(` ${ayat.teksIndonesia}\n`);
}
}📚 Surah with Tafsir
async function studySurah(nomor: number) {
const quran = new EQuran();
const { surat, tafsir } = await quran.getSuratWithTafsir(nomor);
for (let i = 0; i < surat.ayat.length; i++) {
const ayat = surat.ayat[i];
const tafsirAyat = tafsir.tafsir[i];
console.log(`--- Verse ${ayat.nomorAyat} ---`);
console.log(`Arabic: ${ayat.teksArab}`);
console.log(`Translation: ${ayat.teksIndonesia}`);
console.log(`Tafsir: ${tafsirAyat.teks}\n`);
}
}