List of codes per country (languages, calling codes, currency codes, etc) with full TypeScript support.
npm install country-codes-listModule 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:
``bash`
npm install --save country-codes-list
To compile the package, run:
`bash`
npm run build
The compiled output will be in the dist/ folder.
To run tests:
`bash`
npm test
`bash`
npm install --save country-codes-list
1. TypeScript Types: If you were using types:
`typescript
// 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";
`
2. Module Imports: Now supports both CommonJS and ES modules:
`javascript
// CommonJS (still works)
const countryCodes = require("country-codes-list");
// ES Modules (new)
import * as countryCodes from "country-codes-list";
`
3. Stricter Types: Some functions now have stricter type checking:
`typescript`
// 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.
`js
const countryCodes = require("country-codes-list");
const myCountryCodesObject = countryCodes.customList(
"countryCode",
"[{countryCode}] {countryNameEn}: +{countryCallingCode}"
);
console.log(myCountryCodesObject);
`
`ts
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:
- countryNameEncountryNameLocal
- countryCode
- currencyCode
- currencyNameEn
- tinType
- tinName
- officialLanguageCode
- officialLanguageNameEn
- officialLanguageNameLocal
- countryCallingCode
- region
- globalSouth
-
#### Example
`js
const countryCodes = require("country-codes-list");
const myCountryCodesObject = countryCodes.customList(
"countryCode",
"[{countryCode}] {countryNameEn}: +{countryCallingCode}"
);
`
This will return an object like this one:
`js
{
'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',
...
}
``