JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 63550
  • Score
    100M100P100Q161137F
  • License MIT

List of codes per country (languages, calling codes, currency codes, etc) with full TypeScript support.

Package Exports

  • country-codes-list
  • country-codes-list/dist/index.js

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-codes-list) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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