Some checks failed
ci / ci (22, ubuntu-latest) (push) Has been cancelled
Nuxt 4 + Supabase + Flightics API. Incluye búsqueda de vuelos, inspiraciones, watchlist, tracking de precios y mapa interactivo. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
37 lines
1.7 KiB
TypeScript
37 lines
1.7 KiB
TypeScript
// Well-known airline codes
|
|
const KNOWN_AIRLINES: Record<string, string> = {
|
|
'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<string, string>(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 }
|
|
}
|