@muslims-community/prayer-times-calculation
Version:
Minimalist & offline Prayer Times calculation SDK
328 lines (256 loc) • 8.86 kB
Markdown
# 🕌 نماز کے اوقات کیلکولیٹر SDK
[](https://badge.fury.io/js/prayer-times-calculation)
[](https://opensource.org/licenses/MIT)
[](http://www.typescriptlang.org/)
[](https://github.com/your-username/prayer-times-calculation)
ایک ہلکا پھلکا، تیز اور درست TypeScript library نماز کے اوقات کا حساب لگانے کے لیے۔ بغیر انٹرنیٹ کنکشن کے کام کرتا ہے اور کوئی external dependencies نہیں ہے۔
## ✨ خصوصیات
- 🚀 **تیز**: <10ms میں تمام نماز کے اوقات
- 📦 **ہلکا**: <50KB package سائز
- 🎯 **درست**: ±1 منٹ کی درستگی
- 🌐 **آف لائن**: کوئی انٹرنیٹ کی ضرورت نہیں
- 🔧 **Zero Dependencies**: کوئی external libraries نہیں
- 📱 **Cross-platform**: تمام JavaScript environments میں کام کرتا ہے
- 🕌 **اسلامی طریقے**: متعدد معتبر calculation methods
- 🌍 **عالمی**: دنیا بھر کے کسی بھی مقام کے لیے
## 🕐 نماز کے اوقات
- **فجر** - صبح کی نماز
- **طلوع آفتاب** - سورج کا طلوع
- **ظہر** - دوپہر کی نماز
- **عصر** - بعد دوپہر کی نماز
- **مغرب** - شام کی نماز
- **عشاء** - رات کی نماز
## 📋 فہرست
- [انسٹالیشن](#انسٹالیشن)
- [استعمال](#استعمال)
- [Calculation Methods](#calculation-methods)
- [API Reference](#api-reference)
- [مثالیں](#مثالیں)
- [Performance](#performance)
- [Contributing](#contributing)
- [License](#license)
## 📦 انسٹالیشن
```bash
npm install prayer-times-calculation
```
```bash
yarn add prayer-times-calculation
```
```bash
pnpm add prayer-times-calculation
```
## 🚀 استعمال
### بنیادی استعمال
```typescript
import { PrayerTimesSDK } from 'prayer-times-calculation';
// کراچی، پاکستان کے لیے
const sdk = new PrayerTimesSDK(
24.8607, // latitude (خط عرض)
67.0011, // longitude (خط طول)
new Date(), // تاریخ
5, // timezone (UTC+5)
{
method: 'Karachi',
asrJurisdiction: 'Standard'
}
);
const times = sdk.getTimes();
console.log(times);
```
**نتیجہ:**
```javascript
{
fajr: "05:30",
sunrise: "06:45",
dhuhr: "12:15",
asr: "15:30",
maghrib: "18:00",
isha: "19:30"
}
```
### مختلف شہروں کی مثالیں
```typescript
// اسلام آباد، پاکستان
const islamabadSDK = new PrayerTimesSDK(33.6844, 73.0479, new Date(), 5, {
method: 'Karachi'
});
// لاہور، پاکستان
const lahoreSDK = new PrayerTimesSDK(31.5497, 74.3436, new Date(), 5, {
method: 'Karachi'
});
// کوئٹہ، پاکستان
const quettaSDK = new PrayerTimesSDK(30.1798, 66.9750, new Date(), 5, {
method: 'Karachi'
});
```
## 🕌 Calculation Methods
| Method | تفصیل | استعمال |
|--------|---------|---------|
| **MWL** | Muslim World League (رابطہ عالم اسلامی) | عالمی استعمال |
| **ISNA** | Islamic Society of North America | شمالی امریکہ |
| **Egypt** | Egyptian General Authority of Survey | مصر |
| **Makkah** | Umm Al-Qura University (جامعہ ام القریٰ) | سعودی عرب |
| **Karachi** | University of Islamic Sciences (جامعہ علوم اسلامیہ) | پاکستان، بنگلادیش، بھارت |
| **Custom** | آپ کے اپنے angles | خاص ضروریات |
### عصر کے طریقے
- **Standard** - شافعی، مالکی، حنبلی مذاہب
- **Hanafi** - حنفی مذہب (دیر سے عصر)
## 📚 API Reference
### `PrayerTimesSDK`
```typescript
constructor(
latitude: number, // خط عرض (-90 to 90)
longitude: number, // خط طول (-180 to 180)
date: Date, // تاریخ
timezone: number, // UTC سے فرق (hours میں)
options: CalculationOptions
)
```
### `CalculationOptions`
```typescript
interface CalculationOptions {
method: 'MWL' | 'ISNA' | 'Egypt' | 'Makkah' | 'Karachi' | 'Custom';
asrJurisdiction?: 'Standard' | 'Hanafi';
fajrAngle?: number; // Custom method کے لیے
ishaAngle?: number; // Custom method کے لیے
}
```
### Methods
#### `getTimes(): PrayerTimes`
تمام نماز کے اوقات واپس کرتا ہے۔
```typescript
interface PrayerTimes {
fajr: string; // فجر کا وقت
sunrise: string; // طلوع آفتاب
dhuhr: string; // ظہر کا وقت
asr: string; // عصر کا وقت
maghrib: string; // مغرب کا وقت
isha: string; // عشاء کا وقت
}
```
## 💻 مثالیں
### React Component
```jsx
import React, { useState, useEffect } from 'react';
import { PrayerTimesSDK } from 'prayer-times-calculation';
function PrayerTimesApp() {
const [times, setTimes] = useState(null);
const [location, setLocation] = useState({ lat: 24.8607, lng: 67.0011 });
useEffect(() => {
const sdk = new PrayerTimesSDK(
location.lat,
location.lng,
new Date(),
5,
{ method: 'Karachi' }
);
setTimes(sdk.getTimes());
}, [location]);
return (
<div className="prayer-times" dir="rtl">
<h1>آج کے نماز کے اوقات</h1>
{times && (
<div className="times-grid">
<div className="time-card">
<h3>فجر</h3>
<span>{times.fajr}</span>
</div>
<div className="time-card">
<h3>ظہر</h3>
<span>{times.dhuhr}</span>
</div>
<div className="time-card">
<h3>عصر</h3>
<span>{times.asr}</span>
</div>
<div className="time-card">
<h3>مغرب</h3>
<span>{times.maghrib}</span>
</div>
<div className="time-card">
<h3>عشاء</h3>
<span>{times.isha}</span>
</div>
</div>
)}
</div>
);
}
```
### Node.js Server
```javascript
const express = require('express');
const { PrayerTimesSDK } = require('prayer-times-calculation');
const app = express();
app.get('/prayer-times/:lat/:lng', (req, res) => {
try {
const { lat, lng } = req.params;
const timezone = req.query.tz || 5;
const method = req.query.method || 'Karachi';
const sdk = new PrayerTimesSDK(
parseFloat(lat),
parseFloat(lng),
new Date(),
parseInt(timezone),
{ method }
);
const times = sdk.getTimes();
res.json({ success: true, times });
} catch (error) {
res.status(400).json({ success: false, error: error.message });
}
});
app.listen(3000, () => {
console.log('نماز کے اوقات کا سرور port 3000 پر چل رہا ہے');
});
```
### Custom Angles کا استعمال
```typescript
const customSDK = new PrayerTimesSDK(
24.8607, 67.0011, new Date(), 5,
{
method: 'Custom',
fajrAngle: 18, // فجر کے لیے 18 degrees
ishaAngle: 17, // عشاء کے لیے 17 degrees
asrJurisdiction: 'Hanafi'
}
);
```
## ⚡ Performance
- **رفتار**: تمام calculations <10ms میں
- **میموری**: <100KB RAM استعمال
- **سائز**: Package سائز <50KB
- **درستگی**: ±1 منٹ کی accuracy
## 🧪 Testing
```bash
npm test
npm run test:coverage
npm run test:watch
```
## 🌍 Supported Platforms
- ✅ Node.js (14+)
- ✅ تمام modern browsers
- ✅ React Native
- ✅ Electron
- ✅ Progressive Web Apps
## 📖 مزید وسائل
- [API Documentation](./docs/ur/API.md)
- [Examples](./examples/ur/)
- [Contributing Guide](./CONTRIBUTING.ur.md)
- [Code of Conduct](./CODE_OF_CONDUCT.ur.md)
## 🤝 Contributing
ہم community کی مدد کو خوش آمدید کہتے ہیں! براہ کرم [Contributing Guide](./CONTRIBUTING.ur.md) پڑھیں۔
## 📄 License
یہ project MIT License کے تحت ہے - [LICENSE](./LICENSE) فائل دیکھیں۔
## 🙏 تشکر
- اسلامی calculation methods کے لیے مختلف اسلامی اداروں کا شکریہ
- Astronomical algorithms کے لیے Jean Meeus کی کتاب
- Muslim ڈویلپرز کی community
## 📞 رابطہ
- GitHub Issues: [Bug Reports & Feature Requests](https://github.com/your-username/prayer-times-calculation/issues)
- Email: team@prayer-times-sdk.org
---
<div align="center">
**🕌 "اور نماز قائم کرو اور زکوٰۃ دو" - القرآن الکریم**
Made with ❤️ for Muslim developers worldwide
</div>