Socket
Book a DemoInstallSign in
Socket

country-codes-list

Package Overview
Dependencies
Maintainers
3
Versions
33
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

country-codes-list

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

2.0.0
latest
Source
npmnpm
Version published
Weekly downloads
65K
4.54%
Maintainers
3
Weekly downloads
 
Created
Source

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

  • 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
    

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

Keywords

country

FAQs

Package last updated on 02 Feb 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.