Skip to content

List of codes per country (languages, calling codes, currency codes, etc)

License

Notifications You must be signed in to change notification settings

Synergy-Shock/country-codes-list

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

95 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

country-codes-list

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.

Features

  • 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

Installation

Install the package via npm:

npm install --save country-codes-list

Build & Test

To compile the package, run:

npm run build

The compiled output will be in the dist/ folder.

To run tests:

npm test

Installation

Install the NPM module

    npm install --save country-codes-list

Migration Guide (v1.x to v2.0)

Breaking Changes

  1. 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";
  2. 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";
  3. Stricter Types: Some functions now have stricter type checking:

    // This now requires valid country property keys
    countryCodes.filter("invalidKey", "value"); // TypeScript error

Usage

This package can be used in both CommonJS (JavaScript) and TypeScript environments.

CommonJS

const countryCodes = require("country-codes-list");

const myCountryCodesObject = countryCodes.customList(
  "countryCode",
  "[{countryCode}] {countryNameEn}: +{countryCallingCode}"
);

console.log(myCountryCodesObject);

TypeScript

import * as countryCodes from "country-codes-list";

const myCountryCodesObject = countryCodes.customList(
  "countryCode",
  "[{countryCode}] {countryNameEn}: +{countryCallingCode}"
);
console.log(myCountryCodesObject);

API Details – customList Method

  • 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

Example

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',
    ...
}

About

List of codes per country (languages, calling codes, currency codes, etc)

Resources

License

Stars

Watchers

Forks

Packages

No packages published