A comprehensive TypeScript/JavaScript library providing complete administrative boundary data for Kenya, including all 47 Counties, 290+ Constituencies, and 1,450+ Wards.
# OSM Kenya Boundaries 🇰🇪
A comprehensive TypeScript/JavaScript library providing complete administrative boundary data for Kenya, including all 47 Counties, 290+ Constituencies, and 1,450+ Wards.
## ✨ Features
- ✅ **Complete Data**: All 47 counties, 290+ constituencies, and 1,450+ wards
- 🎯 **TypeScript Support**: Full type definitions included
- 🔍 **Search Functions**: Easy search and lookup across all administrative levels
- 📦 **Zero Dependencies**: Lightweight and fast ( `
Get all constituencies with their parent county information.
```typescript
const allConstituencies = getAllConstituencies();
allConstituencies.forEach(c => {
console.log(`${c.constituency_name} in ${c.county_name}`);
});
```
#### `getConstituenciesByCounty(countyCode: number): Constituency[]`
Get all constituencies in a specific county.
```typescript
const nairobiConstituencies = getConstituenciesByCounty(47);
const mombasaConstituencies = getConstituenciesByCounty(1);
```
#### `getConstituencyByName(name: string): SearchResult | undefined`
Find a constituency by name and get its parent county.
```typescript
const result = getConstituencyByName('Westlands');
console.log(result?.county.county_name); // "Nairobi"
console.log(result?.constituency.wards); // ["Kitisuru", "Parklands/Highridge", ...]
```
### Ward Functions
#### `getAllWards(): Array `
Get all wards with their parent constituency and county.
```typescript
const allWards = getAllWards();
console.log(`Total wards: ${allWards.length}`);
```
#### `getWardsByConstituency(constituencyName: string): string[]`
Get all wards in a specific constituency.
```typescript
const westlandsWards = getWardsByConstituency('Westlands');
console.log(westlandsWards);
// ["Kitisuru", "Parklands/Highridge", "Karura", "Kangemi", "Mountain View"]
```
#### `searchWard(wardName: string): SearchResult[]`
Search for wards by name. Returns all matches as some ward names may appear in multiple locations.
```typescript
const results = searchWard(' …