/Countries

Countries, Languages & Continents data (capital and currency, native name, calling codes).

Primary LanguageTypeScriptMIT LicenseMIT

Countries, Languages & Continents data

Monthly Downloads NPM Packagist CI: JS CI: PHP Twitter

Continents & countries: ISO 3166-1 alpha-2 code (with alpha-2 to alpha-3 set), name, ISO 639-1 languages, capital and currency, native name, calling codes. Lists are available in JSON, CSV and SQL formats. Also, contains separate JSON files with additional country Emoji flags data.

Version 2.0: Breaking changes

This version changes a lot in the data structures, and placement of the files. So, if your projects depend on the old structure — specify previous versions, <2.0.0.

Installation

Package is available via:

  • NPM npm install countries-list
  • Composer / Packagist composer require annexare/countries-list
  • Bower bower install countries

Usage

Module exports continents, countries, languages, languagesAll and functions:

  • getEmojiFlag(countryCode), where countryCode is alpha-2 String
  • getUnicode(emoji), where emoji is alpha-2 emoji flag String

Built files are in the ./dist directory. The ./data directory contains source data.

The consistent data is available from ./dist/data.* files (JSON, SQL).

Note: ES5 UMD build is here: ./dist/index.es5.min.js.

Note: Country item languages field is an Array in JSON files to easily count and match items with a Language item. But currency and phone calling codes may be a comma-separated String.

Note: Languages list only contains languages used in Countries data. Full list of known languages is exported as languagesAll from ./dist/languages.all.json.

Data example

{
  "continents": {
    "AF": "Africa",
    "AN": "Antarctica",
    "AS": "Asia",
    "EU": "Europe",
    "NA": "North America",
    "OC": "Oceania",
    "SA": "South America"
  },
  "countries": {
    "AE": {
      "name": "United Arab Emirates",
      "native": "دولة الإمارات العربية المتحدة",
      "phone": "971",
      "continent": "AS",
      "capital": "Abu Dhabi",
      "currency": "AED",
      "languages": [
        "ar"
      ],
      "emoji": "🇦🇪",
      "emojiU": "U+1F1E6 U+1F1EA"
    },
    ...
    "UA": {
      "name": "Ukraine",
      "native": "Україна",
      "phone": "380",
      "continent": "EU",
      "capital": "Kyiv",
      "currency": "UAH",
      "languages": [
        "uk"
      ],
      "emoji": "🇺🇦",
      "emojiU": "U+1F1FA U+1F1E6"
    }
  },
  "languages": {
    "ar": {
      "name": "Arabic",
      "native": "العربية",
      "rtl": 1
    },
    ...
    "uk": {
      "name": "Ukrainian",
      "native": "Українська"
    }
  }
}

Contributing

Everything is generated from files in ./data/, including SQL file.

Everything in ./dist/ is generated, so please make data related changes ONLY to files from ./data/, commit them. Use npm run build command to build/test generated files.

Credits

Prepared by Annexare Studio from different public sources. Feel free to use it as you need in your apps or send updates into this public repository. It's under MIT license.