algeria-wilayas
Version:
A comprehensive package for handling Algerian administrative divisions
78 lines (77 loc) • 2.98 kB
JavaScript
;
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);