import knex from './knex.js'; function curateCountry(countryEntry) { return { name: countryEntry.name, alias: countryEntry.alias, alpha2: countryEntry.alpha2, code: countryEntry.code, }; } export async function fetchCountriesByAlpha2(alpha2s, options = {}) { const entries = await knex('countries') .whereIn('alpha2', alpha2s) .orderBy(knex.raw('coalesce(alias, name)')); if (options.preserveOrder) { return alpha2s.map((alpha2) => { const countryEntry = entries.find((entry) => entry.alpha2 === alpha2); if (!countryEntry) { return null; } return curateCountry(countryEntry); }).filter(Boolean); } return entries.map((countryEntry) => curateCountry(countryEntry)); }