// Well-known airline codes const KNOWN_AIRLINES: Record = { '2W': 'World2Fly', AA: 'American Airlines', AC: 'Air Canada', AF: 'Air France', AI: 'Air India', AM: 'Aeromexico', AR: 'Aerolineas Argentinas', AT: 'Royal Air Maroc', AV: 'Avianca', AY: 'Finnair', AZ: 'ITA Airways', BA: 'British Airways', CM: 'Copa Airlines', CX: 'Cathay Pacific', DL: 'Delta', DY: 'Norwegian', EI: 'Aer Lingus', EK: 'Emirates', ET: 'Ethiopian Airlines', EW: 'Eurowings', EY: 'Etihad', FB: 'Bulgaria Air', FI: 'Icelandair', FR: 'Ryanair', HA: 'Hawaiian Airlines', HU: 'Hainan Airlines', IB: 'Iberia', JL: 'Japan Airlines', JU: 'Air Serbia', KE: 'Korean Air', KL: 'KLM', LA: 'LATAM', LH: 'Lufthansa', LO: 'LOT Polish', LX: 'Swiss', MH: 'Malaysia Airlines', MS: 'EgyptAir', NH: 'ANA', NK: 'Spirit Airlines', OS: 'Austrian', OZ: 'Asiana Airlines', PC: 'Pegasus', QF: 'Qantas', QR: 'Qatar Airways', RO: 'TAROM', SK: 'SAS', SN: 'Brussels Airlines', SQ: 'Singapore Airlines', SU: 'Aeroflot', TK: 'Turkish Airlines', TP: 'TAP Air Portugal', U2: 'easyJet', UA: 'United Airlines', UX: 'Air Europa', VB: 'VivaAerobus', VY: 'Vueling', W6: 'Wizz Air', WS: 'WestJet', X1: 'Hahn Air', ZI: 'Aigle Azur', } // Global cache of airline code → name, learned from API responses const airlineNames = reactive(new Map(Object.entries(KNOWN_AIRLINES))) export function useAirlineNames() { function learn(code: string, name: string) { if (name && !airlineNames.has(code)) { airlineNames.set(code, name) } } function resolve(code: string, name?: string | null): string { if (name) return name return airlineNames.get(code) || '' } return { airlineNames, learn, resolve } }