1.0.1 • Published 5 months ago

algeria-wilayas v1.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
5 months ago

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 script
  • french: Names in French
  • ascii: Latinized/ASCII names (default)

License

MIT

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request
1.0.1

5 months ago