naija-geo
Version:
Nigeria geographical data - states, cities & LGAs
155 lines (111 loc) • 3.57 kB
Markdown
```markdown
# 🇳🇬 Nigeria Geo [](https://www.npmjs.com/package/nigeria-geo)
[](https://npmjs.com/package/nigeria-geo)
A comprehensive Nigeria geographical data package providing states, Local Government Areas (LGAs), and senatorial districts.
## Features
- 📌 All 36 states + Federal Capital Territory (FCT)
- 🏛️ Local Government Areas (LGAs)
- 🗳️ Senatorial Districts
- 🔍 Case-insensitive search
- 🦾 Full TypeScript support
- 📦 Lightweight (~50KB gzipped)
## Installation
```bash
npm install nigeria-geo
# or
yarn add nigeria-geo
# or
pnpm add nigeria-geo
```
## Usage
### Basic Usage
```javascript
import { niajaGeo } from 'nigeria-geo';
// Get all states
const allStates = niajaGeo.getStates();
// Get state details
const lagosState = niajaGeo.getState('Lagos');
// Get LGAs with duplicates removed
const riversLgas = niajaGeo.getLgas('Rivers');
// Find state by LGA
const state = niajaGeo.getStateByLga('Agege'); // Returns Lagos
```
### Class-based Initialization
```typescript
import NiajaGeo from 'nigeria-geo';
const customGeo = new NiajaGeo();
const kanoDistricts = customGeo.getDistricts('Kano');
```
## API Reference
### `getStates()`
**Returns**: `NiajaState[]`
Get all Nigerian states with metadata:
```typescript
interface NiajaState {
state: string;
senatorialDistricts: string[];
lgas: string[];
}
```
### `getState(stateName: string)`
**Parameters**:
- `stateName`: Case-insensitive state name
**Returns**: `NiajaState | null`
```javascript
const abiaState = niajaGeo.getState('abia'); // Case-insensitive
```
### `getDistricts(stateName: string)`
**Returns**: `string[]` of senatorial districts
```javascript
const districts = niajaGeo.getDistricts('Oyo');
```
### `getLgas(stateName: string)`
**Returns**: Unique combination of LGAs and districts (`string[]`)
```javascript
const lgas = niajaGeo.getLgas('Kano');
```
### `getStateByLga(lgaName: string)`
**Parameters**:
- `lgaName`: Case-insensitive LGA name
**Returns**: `NiajaState | null`
```javascript
const state = niajaGeo.getStateByLga('IKEJA'); // Returns Lagos
```
## Data Structure Example
```typescript
{
state: 'Lagos',
senatorialDistricts: ['Lagos West', 'Lagos Central', 'Lagos East'],
lgas: [
'Agege',
'Ajeromi-Ifelodun',
'Alimosho',
'Amuwo-Odofin',
// ... full list
]
}
```
## TypeScript Support
The package includes full type definitions:
```typescript
import type { NiajaState } from 'nigeria-geo';
```
## Contributing
[](CONTRIBUTING.md)
1. Verify data from [official sources](https://nigerianstat.gov.ng/)
2. Update data in `src/config.ts`
3. Add/update tests
4. Submit PR with documentation
```bash
git clone https://github.com/zuxcode/nigeria-geo.git
cd nigeria-geo
npm install
npm test
```
## License
MIT © [Alfred Nwanowai](https://github.com/zuxcode)
**Maintainer**: [@chiTheDev](https://twitter.com/chiTheDev)
---
**[📚 Full Documentation](https://github.com/zuxcode/nigeria-geo#readme)** |
**[🐛 Report Issue](https://github.com/zuxcode/nigeria-geo/issues)** |
**[💡 Feature Request](https://github.com/zuxcode/nigeria-geo/discussions)**