@bidyashish/panchang
Version:
Complete Hindu Panchanga calculator with Tithi, Nakshatra, Yoga, Karana, Vara calculations and Swiss Ephemeris precision
54 lines (45 loc) ⢠1.87 kB
JavaScript
const { getPanchanga, getPanchangaReport } = require('./index.js');
function showHelp() {
console.log(`
š® Panchang Calculator CLI
Usage: npx @bidyashish/panchang [options]
Options:
--lat <latitude> Latitude in degrees (required)
--lng <longitude> Longitude in degrees (required)
--tz <timezone> Timezone (e.g., Asia/Kolkata) (required)
--date <date> Date in YYYY-MM-DD format (optional, defaults to today)
--format <format> Output format: json|report (default: report)
--help Show this help message
Examples:
npx @bidyashish/panchang --lat 28.6139 --lng 77.2090 --tz Asia/Kolkata
npx @bidyashish/panchang --lat 49.8880 --lng -119.4960 --tz America/Vancouver --date 2025-07-19
`);
}
async function main() {
const args = process.argv.slice(2);
if (args.includes('--help') || args.length === 0) { showHelp(); return; }
const lat = parseFloat(args[args.indexOf('--lat') + 1]);
const lng = parseFloat(args[args.indexOf('--lng') + 1]);
const tz = args[args.indexOf('--tz') + 1];
const dateStr = args.includes('--date') ? args[args.indexOf('--date') + 1] : null;
const format = args.includes('--format') ? args[args.indexOf('--format') + 1] : 'report';
if (isNaN(lat) || isNaN(lng) || !tz) {
console.error('ā Error: --lat, --lng, and --tz are required');
showHelp(); process.exit(1);
}
try {
const date = dateStr ? new Date(dateStr) : new Date();
if (format === 'json') {
const panchanga = await getPanchanga(date, lat, lng, tz);
console.log(JSON.stringify(panchanga, null, 2));
} else {
const report = await getPanchangaReport(date, lat, lng, tz);
console.log(report);
}
} catch (error) {
console.error('ā Error calculating Panchanga:', error.message);
process.exit(1);
}
}
main().catch(console.error);