Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
const fs = require('fs');
const path = require('path');
const csv = require('csv');

const readCsvFile = filePath =>
  new Promise((resolve, reject) => {
    fs.readFile(filePath, 'utf-8', (err, data) => {
      if (err) {
        reject(err);
      } else {
        csv.parse(data, (err, data) => {
          if (err) {
            reject(err);
          } else {
            resolve(data);
          }
        });
      }
    });
  });

module.exports = () =>
  Promise.all([
    readCsvFile(path.resolve(__dirname, '../data.csv')),
    readCsvFile(path.resolve(__dirname, '../eu.csv')),
  ]).then(data => {
    const countries = data[0];
    countries.shift();

    let euCountries = data[1];
    euCountries.shift();
    euCountries = euCountries.map(country => country[0]);

    const result = {};
    countries.forEach(entry => {
      const countryCode = entry[1];
      const eu = euCountries.indexOf(countryCode) >= 0 ? true : undefined;

      result[countryCode] = {
        name: entry[0],
        eu,
      };
    });

    fs.writeFile(path.resolve(__dirname, '../dist/countries.json'), JSON.stringify(result), err => {
      if (err) {
        return Promise.reject(err);
      } else {
        return Promise.resolve(null);
      }
    });
  });