UNPKG

salat-first

Version:

Islamic prayer times calculation with special support for Moroccan methods and Maliki madhab

206 lines (205 loc) 7.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getMuslimWorldLeagueParameters = getMuslimWorldLeagueParameters; exports.getEgyptianParameters = getEgyptianParameters; exports.getKarachiParameters = getKarachiParameters; exports.getUmmAlQuraParameters = getUmmAlQuraParameters; exports.getDubaiParameters = getDubaiParameters; exports.getQatarParameters = getQatarParameters; exports.getKuwaitParameters = getKuwaitParameters; exports.getMoonsightingCommitteeParameters = getMoonsightingCommitteeParameters; exports.getNorthAmericaParameters = getNorthAmericaParameters; exports.getSingaporeParameters = getSingaporeParameters; exports.getTehranParameters = getTehranParameters; exports.getTurkeyParameters = getTurkeyParameters; exports.getParameters = getParameters; const index_1 = require("./index"); const calculator_1 = require("../prayers/calculator"); const formatting_1 = require("../utils/formatting"); const morocco_1 = require("./morocco"); /** * Creates calculation parameters for the Muslim World League method * @returns The calculation parameters */ function getMuslimWorldLeagueParameters() { const params = new calculator_1.CalculationParameters(index_1.CalculationMethod.MuslimWorldLeague, 18, // Fajr angle 17, // Isha angle 0, // No Isha interval 0 // No Maghrib angle ); params.methodAdjustments.dhuhr = 1; return params; } /** * Creates calculation parameters for the Egyptian General Authority of Survey method * @returns The calculation parameters */ function getEgyptianParameters() { const params = new calculator_1.CalculationParameters(index_1.CalculationMethod.Egyptian, 19.5, // Fajr angle 17.5, // Isha angle 0, // No Isha interval 0 // No Maghrib angle ); params.methodAdjustments.dhuhr = 1; return params; } /** * Creates calculation parameters for the University of Islamic Sciences, Karachi method * @returns The calculation parameters */ function getKarachiParameters() { const params = new calculator_1.CalculationParameters(index_1.CalculationMethod.Karachi, 18, // Fajr angle 18, // Isha angle 0, // No Isha interval 0 // No Maghrib angle ); params.methodAdjustments.dhuhr = 1; return params; } /** * Creates calculation parameters for the Umm al-Qura University, Makkah method * @returns The calculation parameters */ function getUmmAlQuraParameters() { return new calculator_1.CalculationParameters(index_1.CalculationMethod.UmmAlQura, 18.5, // Fajr angle 0, // No Isha angle 90, // Isha is 90 minutes after Maghrib 0 // No Maghrib angle ); } /** * Creates calculation parameters for the Dubai method * @returns The calculation parameters */ function getDubaiParameters() { const params = new calculator_1.CalculationParameters(index_1.CalculationMethod.Dubai, 18.2, // Fajr angle 18.2, // Isha angle 0, // No Isha interval 0 // No Maghrib angle ); params.methodAdjustments = Object.assign(Object.assign({}, params.methodAdjustments), { sunrise: -3, dhuhr: 3, asr: 3, maghrib: 3 }); return params; } /** * Creates calculation parameters for the Qatar method * @returns The calculation parameters */ function getQatarParameters() { return new calculator_1.CalculationParameters(index_1.CalculationMethod.Qatar, 18, // Fajr angle 0, // No Isha angle 90, // Isha is 90 minutes after Maghrib 0 // No Maghrib angle ); } /** * Creates calculation parameters for the Kuwait method * @returns The calculation parameters */ function getKuwaitParameters() { return new calculator_1.CalculationParameters(index_1.CalculationMethod.Kuwait, 18, // Fajr angle 17.5, // Isha angle 0, // No Isha interval 0 // No Maghrib angle ); } /** * Creates calculation parameters for the Moonsighting Committee method * @returns The calculation parameters */ function getMoonsightingCommitteeParameters() { const params = new calculator_1.CalculationParameters(index_1.CalculationMethod.MoonsightingCommittee, 18, // Fajr angle 18, // Isha angle 0, // No Isha interval 0 // No Maghrib angle ); params.methodAdjustments = Object.assign(Object.assign({}, params.methodAdjustments), { dhuhr: 5, maghrib: 3 }); return params; } /** * Creates calculation parameters for the North America (ISNA) method * @returns The calculation parameters */ function getNorthAmericaParameters() { const params = new calculator_1.CalculationParameters(index_1.CalculationMethod.NorthAmerica, 15, // Fajr angle 15, // Isha angle 0, // No Isha interval 0 // No Maghrib angle ); params.methodAdjustments.dhuhr = 1; return params; } /** * Creates calculation parameters for the Singapore method * @returns The calculation parameters */ function getSingaporeParameters() { const params = new calculator_1.CalculationParameters(index_1.CalculationMethod.Singapore, 20, // Fajr angle 18, // Isha angle 0, // No Isha interval 0 // No Maghrib angle ); params.methodAdjustments.dhuhr = 1; params.rounding = formatting_1.Rounding.Up; return params; } /** * Creates calculation parameters for the Tehran method * @returns The calculation parameters */ function getTehranParameters() { return new calculator_1.CalculationParameters(index_1.CalculationMethod.Tehran, 17.7, // Fajr angle 14, // Isha angle 0, // No Isha interval 4.5 // Maghrib angle ); } /** * Creates calculation parameters for the Turkey method * @returns The calculation parameters */ function getTurkeyParameters() { const params = new calculator_1.CalculationParameters(index_1.CalculationMethod.Turkey, 18, // Fajr angle 17, // Isha angle 0, // No Isha interval 0 // No Maghrib angle ); params.methodAdjustments = Object.assign(Object.assign({}, params.methodAdjustments), { sunrise: -7, dhuhr: 5, asr: 4, maghrib: 7 }); return params; } /** * Gets parameters for a given calculation method * @param method The calculation method * @returns The calculation parameters */ function getParameters(method) { switch (method) { case index_1.CalculationMethod.MuslimWorldLeague: return getMuslimWorldLeagueParameters(); case index_1.CalculationMethod.Egyptian: return getEgyptianParameters(); case index_1.CalculationMethod.Karachi: return getKarachiParameters(); case index_1.CalculationMethod.UmmAlQura: return getUmmAlQuraParameters(); case index_1.CalculationMethod.Dubai: return getDubaiParameters(); case index_1.CalculationMethod.MoonsightingCommittee: return getMoonsightingCommitteeParameters(); case index_1.CalculationMethod.NorthAmerica: return getNorthAmericaParameters(); case index_1.CalculationMethod.Kuwait: return getKuwaitParameters(); case index_1.CalculationMethod.Qatar: return getQatarParameters(); case index_1.CalculationMethod.Singapore: return getSingaporeParameters(); case index_1.CalculationMethod.Tehran: return getTehranParameters(); case index_1.CalculationMethod.Turkey: return getTurkeyParameters(); case index_1.CalculationMethod.MoroccanHabous: return (0, morocco_1.getMoroccanHabousParameters)(); default: throw new Error(`Unknown calculation method: ${method}`); } }