repox-countries
Version:
Provides up-to-date country, state, city, language, currency, phone code, and postal code data, sourced daily from the GeoNames API. Integrate easily into forms or use for data verification. Updated versions are released when changes occur.
98 lines (97 loc) • 2.85 kB
JavaScript
// src/utils/index.ts
import Metadata from './metadata';
var countries = Metadata.getCountries();
var phoneCodes = Metadata.getPhoneCodes();
var currencies = Metadata.getCurrencies();
var languages = Metadata.getLanguages();
var getCountries = () => countries;
var getStates = Metadata.getStates;
var getCities = Metadata.getCities;
var getPhoneCodes = () => phoneCodes;
var getCurrencies = () => currencies;
var getLanguages = () => languages;
var CountryOptions = async () => {
return countries.map((e) => ({
id: e.id,
code: e.name,
name: e.name,
nativeName: e.nativeName,
emoji: e.emoji
}));
};
var CountryById = (id) => {
return countries.find((e) => e.id === id);
};
var CountryByCode = (code) => {
return countries.find((e) => e.code === code);
};
var StatesByCountryId = (countryId) => {
const countryById = CountryById(countryId);
if (!countryById) return [];
const countryState = getStates(countryById.code);
return (countryState && countryState.states) ?? [];
};
var StatesByCountryCode = (countryCode) => {
const countryState = getStates(countryCode);
return (countryState && countryState.states) ?? [];
};
var CitiesByStateCode = (countryCode, stateCode) => {
const stateCity = getCities(countryCode, stateCode);
return (stateCity && stateCity.cities) ?? [];
};
var CountryStateCities = (countryCode) => {
const countryState = getStates(countryCode);
if (!countryState) return void 0;
const stateCities = countryState.states.map((state) => {
const cities = CitiesByStateCode(state.countryCode, state.code);
return {
stateId: state.id,
stateCode: state.code,
cities
};
});
return {
countryId: countryState.countryId,
countryCode: countryState.countryCode,
states: stateCities
};
};
var CountryStateCitiesByCountryId = (countryId) => {
const countryById = CountryById(countryId);
if (!countryById) return void 0;
return CountryStateCities(countryById.code);
};
var PhoneCodeByCountryCode = (countryCode) => {
return phoneCodes.find((e) => e.countryCode === countryCode);
};
var CurrencyByCountryCode = (countryCode) => {
return currencies.find((e) => e.countryCode === countryCode);
};
var CurrencyByCode = (code) => {
return currencies.find((e) => e.code === code);
};
var LanguageByCode = (code) => {
return languages.find((e) => e.code === code);
};
var normalize = (str) => str.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().trim();
export {
CitiesByStateCode,
CountryByCode,
CountryById,
CountryOptions,
CountryStateCities,
CountryStateCitiesByCountryId,
CurrencyByCode,
CurrencyByCountryCode,
LanguageByCode,
PhoneCodeByCountryCode,
StatesByCountryCode,
StatesByCountryId,
getCities,
getCountries,
getCurrencies,
getLanguages,
getPhoneCodes,
getStates,
normalize
};