Package Exports
- country-data
- country-data/data/countries.json
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (country-data) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Country Data
There are lots of little bits of data that you often need relating to countries, and I couldn't find any easy to use source of it. So I compiled it all here.
Work in Progress
This code base may change a bit until it hits 0.1.x
- feel free to use it, but be sure to check between upgrades.
I suspect that many of the currencies
entries on the countries may be wrong. Help checking them would be appreciated.
Countries
The data currently provided for each country is:
name
The english name for the countryalpha2
The ISO 3166-1 alpha 2 codealpha3
The ISO 3166-1 alpha 3 codestatus
: The ISO status of the entry: either 'assigned' or 'reserved'.currencies
An array of ISO 4217 currency codes with the primary one firstcountryCallingCodes
An array of the international call prefixes for this country.ioc
The International Olympic Committee country code
Regions
Countries are ofter grouped into regions. The list of regions is by no means exhaustive, pull requests very welcome for additions.
countries
An array ofalpha2
codes for the countries in this region.
Currencies
It is not that useful to just have the currency code(s) for a country, so included is currency data too:
name
The english name for the currencycode
The ISO 4217 codenumber
The ISO 4217 numberdecimals
The number of decimal digits conventionally shown
Lookup
To make finding easier there are utility methods that can search the countries and currencies. See examples below.
Installing
npm install country-data
Example usage
var countries = require('country-data').countries,
currencies = require('country-data').currencies,
regions = regions('country-data').regions;
// .all gives you an array of all entries
console.log( countries.all );
console.log( currencies.all );
// countries are found using alpha2 or alpha3 (both uppercase)
console.log( countries.BE.name ); // 'Belgium'
console.log( countries.FRA.currencies ); // ['EUR']
// currencies are accessed by their code (uppercase)
console.log( currencies.USD.name ); // 'United States dollar'
// regions are accessed using a camel case name
console.log( regions.europe.countries )
var lookup = require('country-data').lookup;
// Match a value (grab first from array)
var france = lookup.countries({name: 'France'})[0];
// Or match one of several possible values.
var eurozone_countries = lookup.countries({currencies: 'EUR'});
It is very simple for now - feel free to contribute more helpful accessors.
Possible future additions
More data for each country is most welcome. Obvious things that it might be nice to add are:
Countries
- Top level domains
- Wikipedia links
- Coordinates (centroid, bounding box, etc)
- International dialling codes
- Languages spoken - most common first
Currencies
- currency symbols
- other currency that it is pegged to
Other similar bits of code
- libphonenumber "Google's common Java, C++ and Javascript library for parsing, formatting, storing and validating international phone numbers."
How to contribute
The final format is JSON, but it is easier to work with CSV. Hence in the data
folder there are CSV files and scripts that convert them to JSON. Please don't
edit the JSON directly, but do it via the CSV.
These are the steps required:
# Clone the repo (or better your fork of it)
git clone https://github.com/OpenBookPrices/country-data.git
cd country-data
# install the dependencies
npm install .
# Edit the countries.csv
open data/countries.csv
# Convert the raw data (CSV or JS files) to JSON
make
# Run the tests
mocha
# If all is ok commit and push
git add .
git commit
git push
# Then send a pull request with your changes. Ideally use several small commits,
# and reference a source that backs up the change.
Sources
The currency data was copied from the Wikipedia ISO 4217 page.
The country calling codes came from the Wikipedia country calling codes page.