cloudku-murotal
v2.0.0
Published
JavaScript client for Murotal API - Islamic prayer times, Quran, Hadith, and Dua
Maintainers
Readme
Cloudku Murotal API

JavaScript client library untuk mengakses Cloudku Murotal API dengan dukungan Universal
Website • Documentation • GitHub • Contact
Fitur Utama
Universal Support
Browser dan Node.js (CommonJS & ESM)
Auto Date Formatting
Otomatis format tanggal YYYY-MM-DD ke DD-MM-YYYY
Browser-like Headers
Request headers seperti browser asli untuk kompatibilitas maksimal
Parameter Validation
Validasi input otomatis dengan error messages
Error Handling
Penanganan error yang komprehensif
Minified Code
Code yang dioptimasi untuk produksi
Instalasi
npm install cloudku-murotal-api# NPM
npm install cloudku-murotal-api
# Yarn
yarn add cloudku-murotal-api
# PNPM
pnpm add cloudku-murotal-apiQuick Start
ESM (ES Modules)
import CloudkuMurotalAPI from 'cloudku-murotal-api';
const api = new CloudkuMurotalAPI();
const cities = await api.getAllCities();
console.log(cities);CommonJS
const CloudkuMurotalAPI = require('cloudku-murotal-api');
const api = new CloudkuMurotalAPI();
const cities = await api.getAllCities();
console.log(cities);Browser
<script src="https://cdn.jsdelivr.net/npm/[email protected]/main.mjs"></script>
<script>
const api = new CloudkuMurotalAPI();
api.getAllCities().then(cities => console.log(cities));
</script>API Reference
Kota & Lokasi
const cities = await api.getAllCities();Response:
{
"status": "success",
"message": "Success",
"result": [
{
"id": "1",
"name": "Jakarta",
"province": "DKI Jakarta"
}
]
}const results = await api.searchCities('jakarta');Parameters:
query(string, required): Kata kunci pencarian
Waktu Shalat
const schedule = await api.getPrayerTimesByDate('1', '2024-01-01');Parameters:
cityId(string, required): ID kotadate(string, optional): Tanggal dalam format YYYY-MM-DD
const monthlySchedule = await api.getPrayerTimesByMonth('1', '1', '2024');Parameters:
cityId(string, required): ID kotamonth(string, required): Bulan (1-12)year(string, required): Tahun
Tanggal Hijriah
const hijriDate = await api.getCurrentHijriDate();const hijriDate = await api.getHijriDateByGregorian('2024-01-01');Parameters:
gregorianDate(string, required): Tanggal Masehi (YYYY-MM-DD)
Asmaul Husna
const asmaulHusna = await api.getAllAsmaulHusna();const randomHusna = await api.getRandomAsmaulHusna();const husna = await api.getAsmaulHusnaByNumber(1);Parameters:
number(number, required): Nomor Asmaul Husna (1-99)
Al-Quran
const surahList = await api.getSurahList();const surah = await api.getSurahByNumber(1);Parameters:
surahNumber(number, required): Nomor surah (1-114)
const randomSurah = await api.getRandomSurah();const ayah = await api.getAyahByNumber(1);Parameters:
ayahNumber(number, required): Nomor ayat global
const ayah = await api.getSingleAyah(1, 1);Parameters:
surahNumber(number, required): Nomor surahayahNumber(number, required): Nomor ayat dalam surah
const ayahRange = await api.getAyahRange(1, 1, 5);Parameters:
surahNumber(number, required): Nomor surahstartAyah(number, required): Ayat awalrange(number, required): Jumlah ayat
const ayahRange = await api.getSurahAyahRange(1, '1-5');Parameters:
surahNumber(number, required): Nomor surahayahNumbers(string, required): Range ayat (contoh: "1-5")
const randomAyah = await api.getRandomAyah();const juz = await api.getJuzByNumber(1);Parameters:
juzNumber(number, required): Nomor juz (1-30)
Tema Ayat
const themes = await api.getAllThemes();const ayahByTheme = await api.getAyahByTheme(1);Parameters:
themeId(number, required): ID tema
Doa
const doaSources = await api.getDoaSources();const randomDua = await api.getRandomDua();const duaResults = await api.searchDua('harian');Parameters:
query(string, required): Kata kunci pencarian
Hadist
const hadithArbain = await api.getRandomHadithArbain();const hadithBukhari = await api.getRandomHadithBukhari();Advanced Usage
Custom Base URL
const api = new CloudkuMurotalAPI('https://custom-api-url.com');Error Handling
try {
const result = await api.getSurahByNumber(1);
console.log(result);
} catch (error) {
console.error('Error:', error.message);
}Auto Date Formatting
Semua tanggal dalam response otomatis diformat:
// API response: { date: "2024-01-01" }
// Hasil setelah formatting: { date: "01-01-2024" }Response Format
Semua response mengikuti format standar:
{
"status": "success",
"message": "Success message",
"result": {
// Data hasil
}
}Changelog
v2.0.0 - Major Update
Fitur Baru
- Universal Compatibility: Dukungan penuh Browser, Node.js CommonJS, dan ESM
- Auto Date Formatting: Otomatis format tanggal
YYYY-MM-DD→DD-MM-YYYY - Browser-like Headers: Headers HTTP lengkap seperti browser asli
- Parameter Validation: Validasi input otomatis dengan error messages yang informatif
- Enhanced Error Handling: Penanganan error yang lebih baik dan descriptive
Breaking Changes
- Class Name:
MurotalAPI→CloudkuMurotalAPI - Method Names: Penamaan method yang lebih konsisten dan deskriptif
getCities()→getAllCities()getTodayHijriDate()→getCurrentHijriDate()getHijriDate()→getHijriDateByGregorian()getRandomHusna()→getRandomAsmaulHusna()getAllHusna()→getAllAsmaulHusna()getHusnaByNumber()→getAsmaulHusnaByNumber()getPrayerTimes()→getPrayerTimesByDate()searchDoa()→searchDua()getRandomDoa()→getRandomDua()getRandomHadistArbain()→getRandomHadithArbain()getRandomHadistBukhari()→getRandomHadithBukhari()
Performance Improvements
- Minified Code: Code yang dioptimasi untuk ukuran yang lebih kecil
- Better Fetch Detection: Deteksi fetch API yang lebih robust
- Optimized Headers: Headers yang dioptimasi untuk berbagai environment
Technical Improvements
- User-Agent:
cloudku-murotal/2.0.0untuk identifikasi yang lebih baik - TypeScript Ready: Structure yang siap untuk TypeScript definitions
- Better Testing: Test suite yang komprehensif untuk semua environment
Testing
# Test ESM
node test-esm.mjs
# Test CommonJS
node test-cjs.jsContributing
Kontribusi sangat diterima! Silakan buat issue atau pull request di GitHub Repository.
License
MIT License - lihat file LICENSE untuk detail lengkap.
Contact
Developer: AlfiDev
Community:
Links:
Made with ❤️ by AlfiDev
