Skip to content

Lightweight Node package with clean helpers for states, LGAs, capitals, and towns in Nigeria.

License

Notifications You must be signed in to change notification settings

CodeLeom/nigeria-state-city-lga

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nigeria States → LGAs → Towns (Data package)

Dataset and helpers for Nigerian states, their capitals, Local Government Areas (LGAs), and towns/cities. Built for developers who need a dependable, copy‑paste‑ready source of Nigerian administrative data.

npm version npm downloads license: MIT

Quick links

Features

  • Comprehensive list of states, capitals, LGAs, and towns
  • Stable JS helpers for common lookups
  • Lightweight package, easy to integrate

Installation

npm install nigeria-state-lga-data
# or
yarn add nigeria-state-lga-data

Node: works on current LTS releases. The library is published as CommonJS. You can use it in any JavaScript project (Node.js directly, or via bundlers like Vite/Webpack). For browser usage, bundle it with your app.

Usage

CommonJS (Node.js)

const {
  getStates,
  getStatesAndCapitals,
  getLgas,
  getTowns,
  getCapital,
  getState,
  getStatesData,
} = require('nigeria-state-lga-data');

console.log(getStates());
console.log(getStatesAndCapitals());
console.log(getLgas('Lagos'));
console.log(getTowns('Lagos'));
console.log(getCapital('Kano'));
console.log(getState('Rivers'));
console.log(getStatesData());

ES Modules

import pkg from 'nigeria-state-lga-data';
const {
  getStates,
  getStatesAndCapitals,
  getLgas,
  getTowns,
  getCapital,
  getState,
  getStatesData,
} = pkg; // CJS default export → destructure helpers

console.log(getStates());

Data reference

The primary dataset lives in data/nigeria.json and follows this structure:

{
  "states": [
    {
      "name": "Abia",
      "capital": "Umuahia",
      "lgas": ["Aba North", "Aba South", "Arochukwu", "Bende", "..."] ,
      "towns": ["Aba", "Umuahia", "Ohafia", "..."]
    }
  ]
}

Minimal example of a single state object:

{
  "name": "Lagos",
  "capital": "Ikeja",
  "lgas": ["Agege", "Alimosho", "Eti-Osa", "Ikeja", "Ikorodu", "..."],
  "towns": ["Ikeja", "Lekki", "Ikorodu", "Epe", "Badagry", "..."]
}

Notes:

  • Towns are currently listed at the state level (not per LGA).

API (helpers)

From index.js:

Helper Params Returns Description Notes
getStates () string[] List of all state names. Order matches dataset.
getStatesAndCapitals () { state: string; capital: string }[] Pairs of state and capital. Useful for dropdowns.
getLgas (state: string) string[] LGAs for a given state. Case-insensitive; returns [] if not found.
getTowns (state: string) string[] Towns/cities for a given state. Case-insensitive; returns [] if not found.
getCapital (state: string) string Capital name for a given state. Returns '' if not found.
getState (state: string) { name: string; capital: string; lgas: string[]; towns: string[] } | null Full state record. Returns null if not found.
getStatesData () { name: string; capital: string; lgas: string[]; towns: string[] }[] Full dataset shallow-copied per state. Safe to read and map.

Contributing

Want to contribute data or improvements? See CONTRIBUTION.md for the full guide, dev setup, and PR checklist.

Release and versioning

We follow SemVer. Non-breaking data additions are minor bumps; breaking shape changes are major bumps. Changelog entries go in PR descriptions and release notes.

Issues

Found a problem or need help? Open an issue on GitHub.

License

MIT — see LICENSE.

If this project helps you, please ⭐️ the repo and share it.

About

Lightweight Node package with clean helpers for states, LGAs, capitals, and towns in Nigeria.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •