A lightweight JavaScript library and CLI tool for Somalia's administrative divisions and geographic data. Get regions, districts, cities, and their relationships with a simple API.
# Somalia Geo πΈπ΄
A lightweight JavaScript library and CLI tool for Somalia's administrative divisions and geographic data. Get regions, districts, cities, and their relationships with a simple API.
## Features
- πΊοΈ **Complete coverage**: 18 regions, 100+ districts and cities
- π **Smart search**: Find places by name or aliases with fuzzy matching
- π― **Advanced filtering**: Filter by type, region, population, area, and more
- ποΈ **Hierarchical data**: Navigate parent-child relationships
- π **Distance calculations**: Find nearest places (when coordinates available)
- π **Data statistics**: Get insights about regions, populations, and coverage
- π₯οΈ **Enhanced CLI**: Powerful command-line interface with advanced features
- π¦ **Lightweight**: Minimal dependencies, fast loading
- π§ **TypeScript support**: Full type definitions included
- π **Fuzzy search**: Typo-tolerant search powered by Fuse.js
## Installation
```bash
npm install somali-geo
```
Or use globally for CLI access:
```bash
npm install -g somali-geo
```
## Quick Start
### JavaScript API
```javascript
const {
listRegions,
search,
fuzzySearch,
filter,
getByCode,
listChildren,
getStats,
getLargestByPopulation
} = require("somali-geo");
// Get all regions
const regions = listRegions();
console.log(regions.length); // 18
// Search for places (exact match)
const results = search("Bosaso");
console.log(results[0].name); // "Bosaso"
// Fuzzy search (typo-tolerant)
const fuzzyResults = fuzzySearch("Bosasso", 5); // Finds "Bosaso"
console.log(fuzzyResults[0].name); // "Bosaso"
// Advanced filtering
const districts = filter({
type: 'district',
region: 'SO-BN',
limit: 5
});
// Get place by code
const awdal = getByCode("SO-AW");
console.log(awdal.name); // "Awdal"
// Get statistics
const stats = getStats();
console.log(`Total places: ${stats.total}`); // 135
```
### CLI Usage
```bash
# Basic commands
somaligeo regions # List all regions
somaligeo search Mogadishu # Search β¦