JSPM

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

Countries and Provinces JSON Data

Package Exports

  • node-countries
  • node-countries/build/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 (node-countries) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

node-countries

Countries JSON data

Installation

Install via npm:

$ npm install node-countries

Documentation

This module currently has states and provinces for:

  • United States (US)
  • United Kingdom (GB)
  • Canada (CA)
  • Mexico (MX)
  • Australia (AU)
  • China (CN)
  • Germany (DE)
  • Belgium (BE)
  • Netherlands (NL)
  • Denmark (DK)
  • Turkey (TR)
  • Indonesia (ID)
  • Jordan (JO)
  • India (IN)
  • Cambodia (KH)
  • Ethiopia (ET)
  • Peru (PE)
  • Cuba (CU)
  • Argentina (AR)
  • Chile (CL)
  • Bolivia (BO)
  • Spain (ES)
  • Bangladesh (BD)
  • Pakistan (PK)
  • Nigeria (NG)
  • Japan (JP)
  • Austria (AT)
  • Brazil (BR)
  • Philippines (PH)
  • Vietnam (VN)
  • Bulgaria (BG)

Data

getCountries()

import { getCountries } from 'node-countries'

Return a JSON array with all the countries

[
  {
    "alpha2": "AC",
    "alpha3": "",
    "countryCallingCodes": [
      "+247"
    ],
    "currencies": [
      "USD"
    ],
    "ioc": "SHP",
    "languages": [
      "eng"
    ],
    "name": "Ascension Island",
    "status": "reserved",
    "provinces": null,
    "alias": null
  },
  {
    "alpha2": "AD",
    "alpha3": "AND",
    "countryCallingCodes": [
      "+376"
    ],
    "currencies": [
      "EUR"
    ],
    "ioc": "AND",
    "languages": [
      "cat"
    ],
    "name": "Andorra",
    "status": "assigned",
    "provinces": null,
    "alias": null
  },
  ...
]

Short cut

All the countries are accessible directly through their ISO 639-1 (two letter code)

import countries from 'node-countries';

console.log(countries.AC);
/*
  {
    "alpha2": "AC",
    "alpha3": "",
    "countryCallingCodes": [
      "+247"
    ],
    "currencies": [
      "USD"
    ],
    "ioc": "SHP",
    "languages": [
      "eng"
    ],
    "name": "Ascension Island",
    "status": "reserved",
    "provinces": null,
    "alias": null
  }
*/

Methods

getCountryByName(name, [useAlias])

import { getCountryByName } from 'node-countries'

Return the matched country object, else null (alias: findCountryByName)

getCountryByNameOrShortName(name or short name (alpha2, alpha3), [useAlias])

import { getCountryByNameOrShortName } from 'node-countries'

Return the matched country object, else null (alias: findCountryByNameOrShortName)

getProvinceByName(country, provinceName, [useAlias])

Return the matched province object, else null (alias: findProvinceByName)

getProvinceByNameOrShortName(country, provinceName or short name, [useAlias])

Return the matched province object, else null (alias: findProvinceByNameOrShortName)

Examples

import { getCountryByName } from 'node-countries'

console.log(getCountryByName("Andorra"));
/*
  {
    "alpha2": "AD",
    "alpha3": "AND",
    "countryCallingCodes": [
      "+376"
    ],
    "currencies": [
      "EUR"
    ],
    "ioc": "AND",
    "languages": [
      "cat"
    ],
    "name": "Andorra",
    "status": "assigned",
    "provinces": null,
    "alias": null
  }
*/
import countries from "node-countries";

console.log(getProvinceByName(countries.CA, "Labrador", false));
/*
  null
*/

console.log(getProvinceByName(countries.CA, "Labrador", true));
/*
  {
    "short": "NL",
    "name": "Newfoundland and Labrador",
    "alias": [
      "Newfoundland",
      "Labrador"
    ]
  }
*/

Note

Inspired by country-data and provinces

Contributing

This project is a work in progress and subject to API changes, please feel free to contribute