UNPKG

algeria-wilayas

Version:

A comprehensive package for handling Algerian administrative divisions

78 lines (77 loc) 2.98 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const wilayas_json_1 = __importDefault(require("./data/wilayas.json")); const dairas_json_1 = __importDefault(require("./data/dairas.json")); const communes_json_1 = __importDefault(require("./data/communes.json")); class AlgerianWilayas { constructor() { this.wilayas = wilayas_json_1.default; this.dairas = dairas_json_1.default; this.communes = communes_json_1.default; } getAllWilayas() { return this.wilayas; } getWilayaByCode(code) { return this.wilayas.find(w => w.code === code); } getDairasByWilaya(wilayaCode) { return this.dairas.filter(d => d.wilaya_code === wilayaCode); } getDairaById(dairaId) { return this.dairas.find(d => d.id === dairaId); } getCommunesByWilaya(wilayaCode) { return this.communes.filter(c => c.wilaya_code === wilayaCode); } getCommunesByDaira(dairaId) { const daira = this.getDairaById(dairaId); if (!daira) return []; return this.communes.filter(c => c.daira_name_ascii === daira.name.ascii && c.wilaya_code === daira.wilaya_code); } getWilayaName(code, language = 'ascii') { const wilaya = this.getWilayaByCode(code); return wilaya === null || wilaya === void 0 ? void 0 : wilaya.name[language]; } getWilayaStats(wilayaCode) { const communes = this.getCommunesByWilaya(wilayaCode); const dairas = this.getDairasByWilaya(wilayaCode); return { totalCommunes: communes.length, totalDairas: dairas.length, communesPerDaira: dairas.map(daira => ({ daira: daira.name, communeCount: this.getCommunesByDaira(daira.id).length })) }; } /** * Convert wilaya code to formatted string (e.g., "01" -> "01", "1" -> "01") */ formatWilayaCode(code) { return code.toString().padStart(2, '0'); } } // Export default instance exports.default = new AlgerianWilayas(); // Export types __exportStar(require("./types"), exports);