@mostajs/weather
v0.1.0
Published
Weather module for @mostajs — OpenWeatherMap, flyability criteria, alerts, demo mode
Maintainers
Readme
@mostajs/weather
Weather module for @mostajs — OpenWeatherMap, flyability criteria, alerts, demo mode.
Install
npm install @mostajs/weatherUsage
Fetch weather data
import { fetchWeather } from '@mostajs/weather'
const data = await fetchWeather({
apiKey: process.env.OPENWEATHER_KEY,
location: { lat: 48.8566, lon: 2.3522, label: 'Paris' },
})
console.log(data.current.temp) // 22
console.log(data.forecast[0].flyable) // trueDemo mode (no API key)
const data = await fetchWeather({
location: { lat: 36.75, lon: 3.06, label: 'Alger' },
})
// Returns mock data with isRealData: falseReact component
import { WeatherPage } from '@mostajs/weather'
<WeatherPage
config={{
apiKey: process.env.NEXT_PUBLIC_OPENWEATHER_KEY,
location: { lat: 36.7538, lon: 3.0588, label: 'Alger — Site de decollage' },
flyabilityCriteria: { maxWindKmh: 25, minVisibilityKm: 3, forbiddenConditions: ['Rain', 'Thunderstorm', 'Snow'] },
}}
onBack={() => router.back()}
/>Flyability check
import { isFlyable, msToKmh } from '@mostajs/weather'
const windKmh = msToKmh(7.2) // 26 km/h
isFlyable(windKmh, 'Clear') // false (> 25 km/h)
isFlyable(15, 'Rain') // false (Rain is forbidden)
isFlyable(15, 'Clear') // trueAPI
| Export | Description |
|---|---|
| fetchWeather(config) | Fetch current + 5-day forecast (or mock data) |
| isFlyable(wind, condition, criteria?) | Check if conditions allow flight |
| msToKmh(ms) | Convert m/s to km/h |
| getConditionIcon(condition) | Get emoji for weather condition |
| getMockWeather(config) | Generate mock weather data |
| WeatherPage | React component for weather display |
| DEFAULT_CRITERIA | Default flyability criteria |
| CONDITION_ICONS | Condition-to-emoji mapping |
License
MIT — (c) 2026 Dr Hamid MADANI [email protected]
