• Stars
    star
    1,181
  • Rank 39,604 (Top 0.8 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 10 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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 ISO 4217 currency codes, 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 3.0: Breaking changes

Version 3 comes with some data structure changes. Also, it was completely reworked with TypeScript, ESM exports and Turborepo file structure.

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 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: ES6 builds:

  • CJS ./dist/index.min.js.
  • ESM ./dist/index.min.mjs.
  • IIFE ./dist/index.iife.min.js.

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

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.