UNPKG

algeria-wilayas

Version:

A comprehensive package for handling Algerian administrative divisions

60 lines (51 loc) 1.44 kB
// src/scripts/extractWilayas.ts import fs from 'fs'; import path from 'path'; interface Commune { id: number; commune_name_ascii: string; commune_name: string; daira_name_ascii: string; daira_name: string; wilaya_code: string; wilaya_name_ascii: string; wilaya_name: string; } interface Wilaya { code: string; name: { arabic: string; ascii: string; }; } const extractWilayas = () => { // Read communes file const rawData = JSON.parse( fs.readFileSync(path.join(__dirname, '../data/communes.json'), 'utf-8') ) as Commune[]; // Create a Map to store unique wilayas const wilayasMap = new Map<string, Wilaya>(); // Process each commune to extract wilaya information rawData.forEach(commune => { if (!wilayasMap.has(commune.wilaya_code)) { wilayasMap.set(commune.wilaya_code, { code: commune.wilaya_code, name: { arabic: commune.wilaya_name, ascii: commune.wilaya_name_ascii } }); } }); // Convert Map to array and sort by wilaya code const wilayas = Array.from(wilayasMap.values()).sort((a, b) => Number(a.code) - Number(b.code) ); // Write to file fs.writeFileSync( path.join(__dirname, '../data/wilayas.json'), JSON.stringify(wilayas, null, 2) ); console.log(`Successfully extracted ${wilayas.length} wilayas`); }; extractWilayas();