UNPKG

algeria-wilayas

Version:

A comprehensive package for handling Algerian administrative divisions

65 lines (50 loc) 1.76 kB
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 Daira { id: string; name: { arabic: string; ascii: string; }; wilaya_code: string; } const extractDairas = () => { const rawData = JSON.parse( fs.readFileSync(path.join(__dirname, '../data/communes.json'), 'utf-8') ) as Commune[]; const dairasMap = new Map<string, Daira>(); rawData.forEach(commune => { const dairaKey = `${commune.wilaya_code}-${commune.daira_name_ascii}`; if(!dairasMap.has(dairaKey)) { dairasMap.set(dairaKey,{ id : dairaKey, name : { arabic : commune.daira_name, ascii : commune.daira_name_ascii }, wilaya_code : commune.wilaya_code }) }}) const dairas = Array.from(dairasMap.values()).sort((a,b) => { if(a.wilaya_code !== b.wilaya_code) { return Number(a.wilaya_code) - Number(b.wilaya_code) } return a.name.ascii.localeCompare(b.name.ascii) }) fs.writeFileSync( path.join(__dirname, '../data/dairas.json'), JSON.stringify(dairas, null, 2) ); console.log(`Successfully extracted ${dairas.length} dairas`); } extractDairas();