UNPKG

cloudku-murotal

Version:

JavaScript client for Murotal API - Islamic prayer times, Quran, Hadith, and Dua

301 lines (219 loc) • 9.05 kB
# šŸ•Œ Murotal API Client <div align="center"> ![Node.js](https://img.shields.io/badge/Node.js-20%2B-339933?style=for-the-badge&logo=node.js&logoColor=white) ![NPM](https://img.shields.io/badge/NPM-CB3837?style=for-the-badge&logo=npm&logoColor=white) ![JavaScript](https://img.shields.io/badge/JavaScript-F7DF1E?style=for-the-badge&logo=javascript&logoColor=black) ![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge&logo=typescript&logoColor=white) ![MIT License](https://img.shields.io/badge/License-MIT-green.svg?style=for-the-badge) **Modern Islamic API Client - Simple, Fast, Reliable** ✨ **Created by [AlfiDev](https://github.com/cloudkuimages)** [šŸ“¦ Install](#-installation) • [šŸš€ Quick Start](#-quick-start) • [šŸ“– Documentation](#-api-reference) • [šŸ’” Examples](#-examples) </div> --- ## 🌟 Features <div align="center"> | šŸ•Œ **Prayer Times** | šŸ“– **Al-Quran** | 🤲 **Dua & Hadith** | šŸ“… **Calendar** | |:---:|:---:|:---:|:---:| | Jadwal sholat akurat | Surah & Ayat lengkap | Koleksi doa harian | Kalender Hijriah | | Multi-kota Indonesia | Audio murotal | Hadist Bukhari | Konversi tanggal | | Update real-time | Terjemahan & tafsir | Hadist Arbain | Event Islam | </div> --- ## šŸ“¦ Installation ```bash npm install cloudku-murotal ``` ```bash yarn add cloudku-murotal ``` --- ## šŸš€ Quick Start ```javascript import MurotalAPI from 'cloudku-murotal'; const api = new MurotalAPI(); const prayer = await api.getPrayerTimes('1', '2024-01-01'); const ayah = await api.getRandomAyah(); const doa = await api.getRandomDoa(); ``` <details> <summary>šŸ“‹ Click to see response examples</summary> ```javascript { jadwal: { tanggal: '2024-01-01', imsak: '04:30', subuh: '04:40', terbit: '06:05', dhuha: '06:30', dzuhur: '12:10', ashar: '15:25', maghrib: '18:15', isya: '19:30' } } ``` </details> --- ## šŸŽÆ Usage Methods ### šŸ”§ ES Modules (Recommended) ```javascript import MurotalAPI from 'cloudku-murotal'; const api = new MurotalAPI(); ``` ### šŸ“¦ CommonJS ```javascript const { MurotalAPI } = require('cloudku-murotal'); const api = new MurotalAPI(); ``` ### 🌐 Browser ```html <script type="module"> import MurotalAPI from './node_modules/cloudku-murotal/index.mjs'; const api = new MurotalAPI(); </script> ``` --- ## šŸ“– API Reference ### šŸ•Œ Prayer Times & Location <table> <tr><th>Method</th><th>Parameters</th><th>Description</th></tr> <tr><td><code>getCities()</code></td><td>-</td><td>šŸ“ List semua kota Indonesia</td></tr> <tr><td><code>searchCities(query)</code></td><td>string</td><td>šŸ” Cari kota berdasarkan nama</td></tr> <tr><td><code>getPrayerTimes(id, date)</code></td><td>string, string</td><td>ā° Jadwal sholat harian</td></tr> <tr><td><code>getPrayerTimesByMonth(id, month, year)</code></td><td>string, number, number</td><td>šŸ“… Jadwal sholat bulanan</td></tr> </table> ### šŸ“… Islamic Calendar <table> <tr><th>Method</th><th>Parameters</th><th>Description</th></tr> <tr><td><code>getTodayHijriDate()</code></td><td>-</td><td>šŸ“† Tanggal Hijriah hari ini</td></tr> <tr><td><code>getHijriDate(date)</code></td><td>string</td><td>šŸ”„ Konversi Masehi ke Hijriah</td></tr> </table> ### 🌟 Asmaul Husna <table> <tr><th>Method</th><th>Parameters</th><th>Description</th></tr> <tr><td><code>getAllHusna()</code></td><td>-</td><td>šŸ“œ 99 Asmaul Husna lengkap</td></tr> <tr><td><code>getRandomHusna()</code></td><td>-</td><td>šŸŽ² Asmaul Husna acak</td></tr> <tr><td><code>getHusnaByNumber(id)</code></td><td>number</td><td>šŸ”¢ Berdasarkan urutan 1-99</td></tr> </table> ### šŸ“– Holy Quran <table> <tr><th>Method</th><th>Parameters</th><th>Description</th></tr> <tr><td><code>getSurahList()</code></td><td>-</td><td>šŸ“‹ 114 Surah Al-Quran</td></tr> <tr><td><code>getSurahByNumber(id)</code></td><td>number</td><td>šŸ“– Surah berdasarkan nomor</td></tr> <tr><td><code>getRandomSurah()</code></td><td>-</td><td>šŸŽ² Surah acak</td></tr> <tr><td><code>getAyahByNumber(id)</code></td><td>number</td><td>šŸ“ Ayat berdasarkan nomor global</td></tr> <tr><td><code>getSingleAyah(surat, ayat)</code></td><td>number, number</td><td>šŸŽÆ Ayat spesifik</td></tr> <tr><td><code>getAyahRange(surat, start, end)</code></td><td>number, number, number</td><td>šŸ“ Range ayat dalam surah</td></tr> <tr><td><code>getJuz(id)</code></td><td>number</td><td>šŸ“š Juz 1-30</td></tr> <tr><td><code>getRandomAyah()</code></td><td>-</td><td>šŸŽ² Ayat acak</td></tr> <tr><td><code>getAllThemes()</code></td><td>-</td><td>šŸ·ļø Tema-tema Al-Quran</td></tr> <tr><td><code>getAyahByTheme(id)</code></td><td>number</td><td>šŸ“‘ Ayat berdasarkan tema</td></tr> </table> ### 🤲 Prayers & Hadith <table> <tr><th>Method</th><th>Parameters</th><th>Description</th></tr> <tr><td><code>getDoaSources()</code></td><td>-</td><td>šŸ“š Sumber-sumber doa</td></tr> <tr><td><code>searchDoa(query)</code></td><td>string</td><td>šŸ” Cari doa berdasarkan kata kunci</td></tr> <tr><td><code>getRandomDoa()</code></td><td>-</td><td>šŸŽ² Doa acak</td></tr> <tr><td><code>getRandomHadistArbain()</code></td><td>-</td><td>šŸŽ² Hadist Arbain acak</td></tr> <tr><td><code>getRandomHadistBukhari()</code></td><td>-</td><td>šŸŽ² Hadist Bukhari acak</td></tr> </table> --- ## šŸ’” Examples ### šŸ™ļø Get Prayer Times for Jakarta ```javascript const cities = await api.getCities(); const jakartaId = cities.find(city => city.lokasi === 'Jakarta').id; const todayPrayer = await api.getPrayerTimes(jakartaId, '2024-01-01'); ``` ### šŸ“– Read Random Quran Verse ```javascript const randomAyah = await api.getRandomAyah(); console.log(`${randomAyah.surat.nama} - Ayat ${randomAyah.nomor_ayat}`); console.log(randomAyah.ar); console.log(randomAyah.tr); ``` ### 🤲 Daily Prayer Collection ```javascript const morningPrayer = await api.searchDoa('pagi'); const randomDua = await api.getRandomDoa(); const hadith = await api.getRandomHadistBukhari(); ``` ### šŸ“… Islamic Calendar Integration ```javascript const hijriToday = await api.getTodayHijriDate(); const convertedDate = await api.getHijriDate('2024-01-01'); console.log(`Today in Hijri: ${hijriToday.hijri}`); ``` ### 🌟 Asmaul Husna Display ```javascript const allNames = await api.getAllHusna(); const randomName = await api.getRandomHusna(); const specificName = await api.getHusnaByNumber(1); ``` ### āš™ļø Custom Configuration ```javascript const api = new MurotalAPI('https://cloudku.us.kg'); ``` --- ## šŸ›”ļø Error Handling ```javascript try { const result = await api.getPrayerTimes('1', '2024-01-01'); console.log('āœ… Success:', result); } catch (error) { console.error('āŒ API Error:', error.message); if (error.code === 'NETWORK_ERROR') { console.log('šŸ”„ Retrying in 5 seconds...'); } } ``` --- ## šŸ”§ Requirements <div align="center"> | Environment | Version | Status | |:---:|:---:|:---:| | **Node.js** | 20+ | āœ… Supported | | **Browser** | ES6+ | āœ… Supported | | **TypeScript** | 4.5+ | āœ… Compatible | </div> --- ## šŸ¤ Contributing Contributions are welcome! Please feel free to submit a Pull Request. 1. Fork the project 2. Create your feature branch (`git checkout -b feature/AmazingFeature`) 3. Commit your changes (`git commit -m 'Add some AmazingFeature'`) 4. Push to the branch (`git push origin feature/AmazingFeature`) 5. Open a Pull Request --- ## šŸ“Š Project Stats <div align="center"> ![GitHub stars](https://img.shields.io/github/stars/cloudkuimages/cloudku-murotal-api?style=social) ![GitHub forks](https://img.shields.io/github/forks/cloudkuimages/cloudku-murotal-api?style=social) ![NPM downloads](https://img.shields.io/npm/dt/cloudku-murotal?style=social&logo=npm) </div> --- ## šŸ“„ License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. --- <div align="center"> **šŸ”— Quick Links** [![GitHub](https://img.shields.io/badge/GitHub-Repository-181717?style=for-the-badge&logo=github)](https://github.com/cloudkuimages) [![NPM](https://img.shields.io/badge/NPM-Package-CB3837?style=for-the-badge&logo=npm)](https://npmjs.com/package/cloudku-murotal) [![Documentation](https://img.shields.io/badge/Docs-API_Reference-blue?style=for-the-badge&logo=gitbook)](https://github.com/cloudkuimages) **Made with ā¤ļø by [AlfiDev](https://github.com/cloudkuimages)** *Bringing Islamic resources to developers worldwide* šŸŒ </div> --- ## šŸŽÆ Roadmap - [ ] TypeScript definitions - [ ] GraphQL support - [ ] Offline caching - [ ] React hooks package - [ ] Vue.js plugin - [ ] CLI tool - [ ] WebSocket real-time updates --- <div align="center"> *If this package helps your project, please consider giving it a ⭐ on GitHub!* </div>