UNPKG

flight-planner

Version:

Plan and route VFR flights

47 lines (46 loc) 2.37 kB
import { parseMetar } from "metar-taf-parser"; import { Aerodrome, Frequency, ReportingPoint, RunwayWindVector, Waypoint } from "./airport"; import { FlightRules, colorizeFlightRules, formatCeiling, formatQNH, formatTemperature, formatVisibility, formatWind, fromIMetar, MetarData } from "./metar"; import { AerodromeService, WeatherService } from "./service"; import { RouteLeg, RouteOptions, planFlightRoute, RouteTrip, routeTripWaypoints } from "./planner"; import { normalizeICAO, parseRouteString } from "./utils"; /** * Represents a METAR (Meteorological Aerodrome Report) station. * * @interface MetarStation * @property {string} station - The identifier for the METAR station. * @property {MetarData} metarData - The METAR data associated with the station. * @property {string} [rawTaf] - The raw TAF (Terminal Aerodrome Forecast) data, if available. * @property {GeoJSON.Feature<GeoJSON.Point>} location - The geographical location of the station. * @todo Change location type to GeoJSON.Position */ export interface MetarStation { station: string; metarData: MetarData; rawTaf?: string; location: GeoJSON.Feature<GeoJSON.Point>; } /** * Represents a repository for weather information. * * This interface provides methods to access and manage weather station data * including METAR (Meteorological Terminal Air Report) stations. */ export interface WeatherRepository { fetchAndUpdateStations(search: string | GeoJSON.BBox, extend?: number): Promise<void>; fetchStationsByRadius(location: GeoJSON.Point, radius: number): Promise<void>; findByICAO(icao: string): MetarStation | undefined; findNearestStation(location: GeoJSON.Point, exclude: string[]): MetarStation | undefined; } /** * Repository interface for aerodrome operations. * Defines methods to retrieve aerodrome information from a data store. */ export interface AerodromeRepository { findByICAO(icao: string): Promise<Aerodrome | undefined>; } export { parseMetar, parseRouteString, fromIMetar, normalizeICAO }; export { FlightRules, MetarData, formatCeiling, formatQNH, formatTemperature, formatVisibility, formatWind, colorizeFlightRules }; export { Waypoint, ReportingPoint, Aerodrome, Frequency, RunwayWindVector }; export { WeatherService, AerodromeService }; export { RouteOptions, RouteLeg, RouteTrip, planFlightRoute, routeTripWaypoints };