npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

country-details-list

v1.0.0

Published

A utility to work with country data

Readme

country-details-list

This package is built to get all the details of a country under one roof.

Data Format For A Country

{
        "name": "Afghanistan",
        "code": "AF",
        "capital": "Kabul",
        "region": "AS",
        "currency": {
            "code": "AFN",
            "name": "Afghan afghani",
            "symbol": "؋"
        },
        "language": {
            "code": "ps",
            "name": "Pashto"
        },
        "flag": "https://flagcdn.com/af.svg",
        "dialling_code": "+93",
        "isoCode": "004"
}

Description To Each Data Fields

  • name: The official name of the country in English
  • code: The country code in ISO 3166-1 alpha-2 format
  • capital: The capital city of the country
  • region: The country region in ISO 3166-1 format
  • currency: This field contains the official currency details of the country in three sub-fields:
    • code: The official currency code of the country
    • name: The offcial currency name of the country
    • symbol: The official currency symbol of the country
  • language: This field contains the offcial/ most speaking language details of the country in two sub-fields:
    • code: The language code of the country
    • name: The official/ most speaking language name of the country
  • flag: The flag of the country in svg format
  • dialling_code: The dialling code of the country
  • isoCode: ISO code of the country

Data

Please access /data folder to see through the data(in JSON format) which have been used for this package.

APIs

  • getCountryDetailsByCountryCode This API accepts a single argument i.e. countryCode and returns the associated country details if any.
  • getCountryDetailsByCountryName This API accepts a single argument i.e. countryName and returns the associated country details if any.
  • getCountryFlagByCountryCodeOrName This API accepts two arguments i.e. countryCode & countryName. If either of the mentioned argument has valid valu then it would return the associated country flag details.
  • getCountryDialCodeByCountryCodeOrName This API accepts two arguments i.e. countryCode & countryName. If either of the mentioned argument has valid valu then it would return the associated country dial code.

Example

Code

const { 
    getCountryDetailsByCountryCode,
    getCountryDetailsByCountryName,
    getCountryFlagByCountryCodeOrName,
    getCountryDialCodeByCountryCodeOrName
 } = require('country-details-list');

console.log(getCountryDetailsByCountryCode('IN'));
console.log(getCountryDetailsByCountryName('InDia'));
console.log(getCountryFlagByCountryCodeOrName('IN'));
console.log(getCountryDialCodeByCountryCodeOrName(countryCode = '', 'Afghanistan'));
console.log(getCountryDetailsByCountryCode('UT'));

Response

{
  status: 200,
  message: 'A matching country found.',
  country: {
    name: 'India',
    code: 'IN',
    capital: 'New Delhi',
    region: 'AS',
    currency: { code: 'INR', name: 'Indian rupee', symbol: '₹' },
    language: { code: 'hi', name: 'Hindi' },
    flag: 'https://flagcdn.com/in.svg',
    dialling_code: '+91',
    isoCode: '356'
  }
}
{
  status: 200,
  message: 'A matching country found.',
  country: {
    name: 'India',
    code: 'IN',
    capital: 'New Delhi',
    region: 'AS',
    currency: { code: 'INR', name: 'Indian rupee', symbol: '₹' },
    language: { code: 'hi', name: 'Hindi' },
    flag: 'https://flagcdn.com/in.svg',
    dialling_code: '+91',
    isoCode: '356'
  }
}
{
  status: 200,
  message: 'A matching country found.',
  flag: 'https://flagcdn.com/in.svg'
}
{
  status: 200,
  message: 'A matching country found.',
  dialling_code: '+93'
}
{
  status: 404,
  message: 'There is no matching country code found.',
  country: {}
}

Credits

Thanks to:

License