iso3166-lib
v1.0.4
Published
Librería ISO 3166-2 con subdivisiones por país.
Maintainers
Readme
# 🌍 ISO 3166-2 Lib
Librería para obtener subdivisiones administrativas por país usando códigos **[ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)**.
Ideal para autocompletar formularios, crear selectores de regiones y trabajar con datos geográficos estándar.
---
## 📦 Instalación
```bash
npm install @sinergya/iso3166-2-lib
# o
pnpm add @sinergya/iso3166-2-lib
```🧰 Uso Básico
import {
getCountries,
getSubdivisions,
getSubdivisionByCode,
} from '@sinergya/iso3166-2-lib';
// 📌 Obtener todos los países disponibles
const countries = getCountries();
console.log(countries);
// 📌 Obtener subdivisiones por nombre o código de país
const subdivisions1 = getSubdivisions('Bolivia');
const subdivisions2 = getSubdivisions('BO');
console.log(subdivisions1);
// 📌 Obtener una subdivisión específica por código ISO 3166-2
const laPaz = getSubdivisionByCode('BO-L');
console.log(laPaz);✨ Funcionalidades Disponibles
1. getCountries()
Devuelve una lista única de todos los países disponibles en la base de datos.
Retorno:
[
{ code: "AD", name: "Andorra" },
{ code: "BO", name: "Bolivia" },
{ code: "BR", name: "Brasil" },
...
]2. getSubdivisions(country)
Obtiene todas las subdivisiones (departamentos, provincias, estados, etc.) de un país.
country puede ser el nombre del país o el código ISO 3166-1 Alpha-2.
getSubdivisions('Bolivia');
getSubdivisions('BO');Retorno:
[
{
country_code: "BO",
subdivision_name: "La Paz",
Code1: "L",
iso3166_2: "BO-L",
subdivision_name_ascii: "La Paz",
slug: "la-paz",
country_name: "Bolivia"
},
...
]3. getSubdivisionByCode(code)
Obtiene una subdivisión específica por su código ISO 3166-2 (ej. BO-L).
getSubdivisionByCode('BO-L');Retorno:
{
country_code: "BO",
subdivision_name: "La Paz",
Code1: "L",
iso3166_2: "BO-L",
subdivision_name_ascii: "La Paz",
slug: "la-paz",
country_name: "Bolivia"
}Si no se encuentra, devuelve null.
🧭 Estructura del Proyecto
iso-3166-2-lib/
├─ data/
│ └─ iso3166-2-extended.json # Base de datos de subdivisiones
├─ src/
│ └─ index.js # Funciones principales
├─ package.json
├─ README.md📄 Formato de Datos JSON
Cada entrada en el JSON tiene la siguiente estructura:
{
"country_code": "BO",
"subdivision_name": "La Paz",
"Code1": "L",
"iso3166_2": "BO-L",
"subdivision_name_ascii": "La Paz",
"slug": "la-paz",
"country_name": "Bolivia"
}| Campo | Descripción |
| ------------------------ | --------------------------------------------- |
| country_code | Código ISO 3166-1 Alpha-2 del país |
| subdivision_name | Nombre oficial de la subdivisión |
| Code1 | Código interno de subdivisión |
| iso3166_2 | Código estándar ISO 3166-2 (país-subdivisión) |
| subdivision_name_ascii | Nombre sin acentos (útil para búsquedas) |
| slug | Versión URL friendly del nombre |
| country_name | Nombre completo del país |
🧪 Ejemplos de Uso
import {
getCountries,
getSubdivisions,
getSubdivisionByCode,
} from '@sinergya/iso3166-2-lib';
// Listar todos los países
console.log(getCountries());
// Buscar subdivisiones por nombre
console.log(getSubdivisions('Argentina'));
// Buscar subdivisiones por código
console.log(getSubdivisions('AR'));
// Obtener subdivisión puntual
console.log(getSubdivisionByCode('AR-B'));🪪 Licencia
MIT © Sinergya America S.R.L.
Desarrollado por Jorge Luis Tancara 🚀 GitHub: @QuantumCode2000 Correo: [email protected]
🏷️ Notas
- La base de datos ISO 3166-2 proviene de fuentes públicas y puede actualizarse con el tiempo.
- El JSON está optimizado para consultas rápidas desde Node.js.
- Compatible con ES Modules (
"type": "module").
