1.2.2 • Published 1 month ago
@workmate/country-and-currency v1.2.2
Country flags, capitals and currency library
Installation
CDN
Add the js script to the head of the html file
<script src="https://cdn.jsdelivr.net/npm/@workmate/country-and-currency/dist/bundle.js" defer></script>
Then you can access the country and currency instance using
<script defer>
var CountryAndCurrency = CountryAndCurrencyLib.setup()
</script>
Package Manager
# using npm
npm install --save @workmate/country-and-currency
# using yarn
yarn add @workmate/country-and-currency
Then you can access the country and currency instance using
import CountryAndCurrency from "@workmate/country-and-currency";
Useful types
interface Currency {
name: string;
code: string;
symbol: string;
}
interface Country {
name: string;
capital: string;
continent: string;
flag: string;
iso2: string;
iso3: string;
dail_code: string;
latitude: number;
longitude: number;
currency: {
unicode: string;
code: string;
name: string;
symbol: string;
};
}
interface CountryWithDistance extends Country {
distance: number;
}
interface LocationInterface {
long: number;
lat: number;
}
Methods
getCurrencies(): Array<Currency>
getCurrencyBy(field: "name" | "code" | "symbol",value: string): Currency | undefined
getCountries(): Array<Country>
getCountriesBy(field: "name" | "capital" | "continent" | "flag" | "iso2" | "iso3" | "dail_code", value: string): Array<Country>
distanceBetweenLocations(firstLocation: LocationInterface, secondLocation: LocationInterface): number
(result in kilometers)countriesWithinRadius(country: Country, radius: number): Array<CountryWithDistance>
(radius in kilometers)topXClosestCountries(country: Country, x: number): Array<CountryWithDistance>
topXFarthestCountries(country: Country, x: number): Array<CountryWithDistance>
distanceOfCountryToOtherCountries(country: Country, order: "asc" | "desc" = "asc"): Array<CountryWithDistance>
Usage
const currencies = CountryAndCurrency.getCurrencies()
console.log(currencies)
/*
Expected result
[
{
name: "Afghan Afghani",
code: "AFA",
symbol: "؋",
},
...
]
*/
const currency = CountryAndCurrency.getCurrencyBy("code", "AFA")
console.log(currency)
/*
Expected result
{
name: "Afghan Afghani",
code: "AFA",
symbol: "؋",
},
*/
const countries = CountryAndCurrency.getCountries()
console.log(countries)
/*
Expected result
[
{
name: "Mexico",
capital: "Mexico City",
continent: "NA",
flag: "https://upload.wikimedia.org/wikipedia/commons/f/fc/Flag_of_Mexico.svg",
iso2: "MX",
iso3: "MEX",
dail_code: "+52",
latitude: 23,
longitude: -102,
currency: {
unicode: "🇲🇽",
code: "MXN",
name: "Mexican Peso",
symbol: "$",
},
},
...
]
*/
const countriesBy = CountryAndCurrency.getCountriesBy("iso3", "MEX")
// if the field selected (in this case iso3) is unique, the result would be an array of length 0 or 1
console.log(countriesBy)
/*
[
{
name: "Mexico",
capital: "Mexico City",
continent: "NA",
flag: "https://upload.wikimedia.org/wikipedia/commons/f/fc/Flag_of_Mexico.svg",
iso2: "MX",
iso3: "MEX",
dail_code: "+52",
latitude: 23,
longitude: -102,
currency: {
unicode: "🇲🇽",
code: "MXN",
name: "Mexican Peso",
symbol: "$",
},
}
]
*/
const firstLocation = {
lat: 10,
long: 15,
};
const secondLocation = {
lat: 20,
long: -17,
};
const distanceBetweenLocations = CountryAndCurrency.distanceBetweenLocations(firstLocation, secondLocation)
console.log(distanceBetweenLocations);
/*
Expected result
3604.3678036992624 // in kilometers
*/
const mexico = CountryAndCurrency.getCountriesBy("iso3", "MEX")[0];
const countriesWithinRadius = CountryAndCurrency.countriesWithinRadius(
mexico,
2000
);
console.log(countriesWithinRadius);
/*
Expected result
[
{
name: 'Guatemala',
capital: 'Guatemala City',
continent: 'NA',
flag: 'https://upload.wikimedia.org/wikipedia/commons/e/ec/Flag_of_Guatemala.svg',
iso2: 'GT',
iso3: 'GTM',
dail_code: '+502',
latitude: 15.5,
longitude: -90.25,
currency: {
unicode: '🇬🇹',
code: 'GTQ',
name: 'Guatemalan Quetzal',
symbol: 'Q'
},
distance: 1487.7626308065874
},
...
]
*/
const mexico = CountryAndCurrency.getCountriesBy("iso3", "MEX")[0];
const closestCountries = CountryAndCurrency.topXClosestCountries(mexico, 2);
console.log(closestCountries);
/*
Expected result
[
{
name: 'Guatemala',
capital: 'Guatemala City',
continent: 'NA',
flag: 'https://upload.wikimedia.org/wikipedia/commons/e/ec/Flag_of_Guatemala.svg',
iso2: 'GT',
iso3: 'GTM',
dail_code: '+502',
latitude: 15.5,
longitude: -90.25,
currency: {
unicode: '🇬🇹',
code: 'GTQ',
name: 'Guatemalan Quetzal',
symbol: 'Q'
},
distance: 1487.7626308065874
},
...
]
*/
const mexico = CountryAndCurrency.getCountriesBy("iso3", "MEX")[0];
const farthestCountries = CountryAndCurrency.topXFarthestCountries(mexico, 2);
console.log(farthestCountries);
/*
Expected result
[
{
name: 'British Indian Ocean Territory',
capital: 'Diego Garcia',
continent: 'AS',
flag: 'https://upload.wikimedia.org/wikipedia/commons/6/6e/Flag_of_the_British_Indian_Ocean_Territory.svg',
iso2: 'IO',
iso3: 'IOT',
dail_code: '+246',
latitude: -6,
longitude: 71.5,
currency: { unicode: '🇮🇴', code: 'USD', name: 'US Dollar', symbol: '$' },
distance: 18000.497060769732
},
...
]
*/
const mexico = CountryAndCurrency.getCountriesBy("iso3", "MEX")[0];
const distanceFromOthers = CountryAndCurrency.distanceOfCountryToOtherCountries(
mexico,
"asc" // from closest to farthest
);
console.log(distanceFromOthers);
/*
Expected result
[
{
name: 'British Indian Ocean Territory',
capital: 'Diego Garcia',
continent: 'AS',
flag: 'https://upload.wikimedia.org/wikipedia/commons/6/6e/Flag_of_the_British_Indian_Ocean_Territory.svg',
iso2: 'IO',
iso3: 'IOT',
dail_code: '+246',
latitude: -6,
longitude: 71.5,
currency: { unicode: '🇮🇴', code: 'USD', name: 'US Dollar', symbol: '$' },
distance: 18000.497060769732
},
...
]
*/
1.2.2
1 month ago
1.2.1
1 month ago
1.2.0
1 year ago
1.1.0
1 year ago
1.0.2
2 years ago
1.0.1
2 years ago
1.0.0
2 years ago
1.0.7
1 year ago
1.0.6
2 years ago
1.0.5
2 years ago
1.0.4
2 years ago
1.0.3
2 years ago
1.0.0-beta.3
2 years ago
1.0.0-beta.2
2 years ago
1.0.0-beta.1
2 years ago
1.0.0-beta.0
2 years ago