Module with list of codes per country, including country codes, currency codes, and more.
Warning
Release v2.0.0 introduces breaking changes with full TypeScript support and automated testing/publishing.
- Country code (ISO 3166-1 alpha-2): Obtained from Wikipedia
- Country Name: Each name in english and in the local country language
- Currency Code (ISO 4217): Obtained from Wikipedia
- Currency Name (ISO 4217): Obtained from Wikipedia
- TIN Code (Taxpayer Identification Number, also known as VAT in some countries): Obtained from Wikipedia
- TIN Name: Obtained from Wikipedia
- Official language code (usually from ISO 639-1, or ISO 639-3 otherwise)): Obtained from Open Street Map. Returns only the first official language code per country
- Official language name: Each name in english and in the local country language
- Country Calling Code: The phone calling code for the country. Obtained from Wikipedia.
- Region: The Regional Classifications are from the International Telecommunications Union. Seen here
Install the package via npm:
npm install --save country-codes-list
To compile the package, run:
npm run build
The compiled output will be in the dist/
folder.
To run tests:
npm test
npm install --save country-codes-list
-
TypeScript Types: If you were using types:
// Old (v1.x) import { CountryProperty } from "country-codes-list"; const prop: CountryProperty = CountryProperty.countryCode; // New (v2.0) import type { CountryProperty } from "country-codes-list"; const prop: CountryProperty = "countryCode";
-
Module Imports: Now supports both CommonJS and ES modules:
// CommonJS (still works) const countryCodes = require("country-codes-list"); // ES Modules (new) import * as countryCodes from "country-codes-list";
-
Stricter Types: Some functions now have stricter type checking:
// This now requires valid country property keys countryCodes.filter("invalidKey", "value"); // TypeScript error
This package can be used in both CommonJS (JavaScript) and TypeScript environments.
const countryCodes = require("country-codes-list");
const myCountryCodesObject = countryCodes.customList(
"countryCode",
"[{countryCode}] {countryNameEn}: +{countryCallingCode}"
);
console.log(myCountryCodesObject);
import * as countryCodes from "country-codes-list";
const myCountryCodesObject = countryCodes.customList(
"countryCode",
"[{countryCode}] {countryNameEn}: +{countryCallingCode}"
);
console.log(myCountryCodesObject);
- The first parameter is the key used for the returned object's property.
- The second parameter is a string with placeholders (in
{placeholder}
format) replaced by corresponding country properties.
The available placeholders are:
countryNameEn
countryNameLocal
countryCode
currencyCode
currencyNameEn
tinType
tinName
officialLanguageCode
officialLanguageNameEn
officialLanguageNameLocal
countryCallingCode
region
globalSouth
const countryCodes = require("country-codes-list");
const myCountryCodesObject = countryCodes.customList(
"countryCode",
"[{countryCode}] {countryNameEn}: +{countryCallingCode}"
);
This will return an object like this one:
{
'AD': '[AD] Andorra: +376',
'AE': '[AE] United Arab Emirates: +971',
'AF': '[AF] Afghanistan: +93',
'AG': '[AG] Antigua and Barbuda: +1',
'AI': '[AI] Anguilla: +1',
'AL': '[AL] Albania: +355',
'AM': '[AM] Armenia: +374',
'AO': '[AO] Angola: +244',
'AQ': '[AQ] Antarctica: +',
'AR': '[AR] Argentina: +54',
'AS': '[AS] American Samoa: +1',
'AT': '[AT] Austria: +43',
'AU': '[AU] Australia: +61',
'AW': '[AW] Aruba: +297',
...
}