UNPKG

@legendaryrob/countrify

Version:

A package to assist in the disection of ISO-3166-1(country) and ISO-3166-2(subdivision) ISO standards.

36 lines (26 loc) 868 B
const fs = require('fs'); const path = require('path'); const extractPropertiesFrom = (object, properties) => { if (properties.length === 1) { return object[properties[0]]; } const result = {}; properties.forEach((p) => { result[p] = object[p]; }); return result; }; const allCountries = (...attributes) => { const countriesPath = path.join(__dirname, '../../data/countries'); const countryFiles = fs.readdirSync(countriesPath); return countryFiles.map((fileName) => { const rawData = fs.readFileSync(`${countriesPath}/${fileName}`); const parsedCountryData = JSON.parse(rawData.toString('utf8')); const countryData = Object.values(parsedCountryData)[0]; if (attributes.length === 0) { return countryData; } return extractPropertiesFrom(countryData, attributes); }); }; module.exports = allCountries;