UNPKG

naija-geo

Version:

Nigeria geographical data - states, cities & LGAs

155 lines (111 loc) 3.57 kB
```markdown # 🇳🇬 Nigeria Geo [![npm version](https://img.shields.io/npm/v/nigeria-geo.svg?style=flat-square)](https://www.npmjs.com/package/nigeria-geo) [![npm downloads](https://img.shields.io/npm/dt/nigeria-geo.svg?style=flat-square)](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 [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](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)**