UNPKG

@mohaned.ghawar/countries-info

Version:

A comprehensive JavaScript library for accessing detailed country information, including regions, capitals, continents, and more.

200 lines (151 loc) 5.16 kB
# Countries Info (JavaScript/Node.js) A comprehensive JavaScript library for accessing detailed country information, including regions, cities, capitals, continents, and more. ## Installation ```bash npm install @mohaned.ghawar/countries-info ``` ## Features - Complete country information (names, codes, capitals, etc.) - Administrative regions for all countries (states, provinces, etc.) - Detailed city data including: - City names and populations - Geographical coordinates - Hierarchical organization (Country -> Region -> Cities) - Population and area data - Continent information - Easy-to-use API - TypeScript-friendly - Regular updates ## Usage ```javascript const CountriesService = require('@mohaned.ghawar/countries-info'); const service = new CountriesService(); // Get all countries const allCountries = service.getAllCountries(); // Get a specific country by its 3-letter code const usa = service.getCountryByCode('USA'); // Get a country by name const france = service.getCountryByName('France'); // Get all regions/states of a country const usStates = service.getCountryRegions('USA'); // Get all countries in a continent const europeanCountries = service.getCountriesByContinent('Europe'); // Search countries by name const searchResults = service.searchByName('united'); // Get cities in a specific region const californiaCities = service.getCitiesByRegion('USA', 'California'); // Get all cities in a country const allUsCities = service.getAllCitiesInCountry('USA'); // Get total number of cities in a country const usCityCount = service.getCityCount('USA'); // Search for cities across all countries const citiesNamedParis = service.searchCities('Paris'); ``` ## API Reference ### Methods #### `getAllCountries()` Returns an array of all country objects. #### `getCountryByCode(code: string)` Returns a country object for the given 3-letter ISO code (e.g., 'USA', 'GBR'). #### `getCountryByName(name: string)` Returns a country object for the given country name. #### `getCountryRegions(code: string)` Returns an array of region names for the given country code. #### `getCountriesByContinent(continent: string)` Returns an array of countries in the specified continent. #### `searchByName(name: string)` Returns an array of countries whose names contain the search term. #### `getCitiesByRegion(countryCode: string, regionName: string)` Returns an array of city objects for the given region. #### `getAllCitiesInCountry(countryCode: string)` Returns an array of city objects for the given country. #### `getCityCount(countryCode: string)` Returns the total number of cities in the given country. #### `searchCities(name: string)` Returns an array of city objects whose names contain the search term. ### Data Structures #### Country Object ```javascript { name: { common: "United States", official: "United States of America" }, code: "USA", capital: "Washington, D.C.", continent: "North America", population: 331002651, area_km2: 9833517 } ``` #### City Object ```javascript { name: "Los Angeles", latitude: "34.05223", longitude: "-118.24368", population: 3971883, countryCode: "USA", // Only included in searchCities results regionName: "California" // Only included in searchCities results } ``` #### Regions Array ```javascript // Example: service.getCountryRegions('USA') [ "Alabama", "Alaska", "Arizona", // ... all US states "Wisconsin", "Wyoming" ] ``` ## Data Coverage - 250+ Countries - 4,000+ Regions/States - 150,000+ Cities worldwide ## Examples ### Get US States ```javascript const service = new CountriesService(); const usStates = service.getCountryRegions('USA'); console.log(usStates); // ["Alabama", "Alaska", "Arizona", ...] ``` ### Get European Countries ```javascript const service = new CountriesService(); const europeanCountries = service.getCountriesByContinent('Europe'); console.log(europeanCountries.map(c => c.name.common)); ``` ### Search Countries ```javascript const service = new CountriesService(); const unitedCountries = service.searchByName('united'); console.log(unitedCountries.map(c => c.name.common)); // ["United States", "United Kingdom", "United Arab Emirates"] ``` ### Get Cities in California ```javascript const service = new CountriesService(); const californiaCities = service.getCitiesByRegion('USA', 'California'); console.log(californiaCities.map(c => c.name)); ``` ### Get All Cities in the USA ```javascript const service = new CountriesService(); const allUsCities = service.getAllCitiesInCountry('USA'); console.log(allUsCities.map(c => c.name)); ``` ### Search for Cities Named Paris ```javascript const service = new CountriesService(); const citiesNamedParis = service.searchCities('Paris'); console.log(citiesNamedParis.map(c => c.name)); ``` ## Contributing Contributions are welcome! Please feel free to submit a Pull Request. ## License MIT License - see the [LICENSE](LICENSE) file for details. ## Support If you encounter any issues or have questions, please file an issue on the [GitHub repository](https://github.com/MohanedGhawar2019/countries-info-js/issues).