1.0.1 • Published 5 months ago
algeria-wilayas v1.0.1
AlgerianWilayas
A comprehensive Node.js package providing data and utilities for Algerian administrative divisions (Wilayas, Daïras, and Communes).
Features
- Complete data for all 58 Algerian Wilayas (provinces)
- Detailed information about all Daïras (districts) and Communes (municipalities)
- Support for multiple languages (Arabic, French, and ASCII/Latin)
- Easy-to-use API for querying and filtering administrative divisions
- TypeScript support with full type definitions
Installation
npm install algerian-wilayas
Or using yarn:
yarn add algerian-wilayas
Usage
Basic Usage
import algerianWilayas from 'algerian-wilayas';
// Get all wilayas
const allWilayas = algerianWilayas.getAllWilayas();
// Get a specific wilaya by code
const wilaya = algerianWilayas.getWilayaByCode('16'); // Alger/Algiers
// Get all daïras in a wilaya
const dairas = algerianWilayas.getDairasByWilaya('16');
// Get all communes in a wilaya
const communes = algerianWilayas.getCommunesByWilaya('16');
// Get communes in a specific daïra
const communesInDaira = algerianWilayas.getCommunesByDaira('daira_id');
// Get wilaya name in a specific language
const wilayaNameArabic = algerianWilayas.getWilayaName('16', 'arabic');
const wilayaNameFrench = algerianWilayas.getWilayaName('16', 'french');
const wilayaNameAscii = algerianWilayas.getWilayaName('16', 'ascii');
Getting Statistics
// Get statistics for a wilaya
const stats = algerianWilayas.getWilayaStats('16');
console.log(stats);
/* Output:
{
totalCommunes: 13,
totalDairas: 4,
communesPerDaira: [
{ daira: { arabic: "...", french: "...", ascii: "..." }, communeCount: 3 },
...
]
}
*/
Formatting Wilaya Codes
// Format wilaya code to ensure 2 digits
const formattedCode = algerianWilayas.formatWilayaCode(1); // Returns "01"
Data Structure
Wilaya
interface Wilaya {
code: string;
name: BilingualName;
}
interface BilingualName {
arabic: string;
french: string;
ascii: string;
}
Daïra
interface Daira {
id: string;
wilaya_code: string;
name: BilingualName;
}
Commune
interface Commune {
id: string;
wilaya_code: string;
daira_name_ascii: string;
name: BilingualName;
}
Language Support
The package supports three languages for names:
arabic
: Names in Arabic scriptfrench
: Names in Frenchascii
: Latinized/ASCII names (default)
License
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
1.0.1
5 months ago