unicode-countries
Version:
Creates a json file with countries.
67 lines (56 loc) • 1.86 kB
JavaScript
;
const argv = require("minimist")(process.argv.slice(2));
const mapper = require("./lib/mapper");
const service = require("./lib/service");
const fm = require("./lib/file-manager");
if (argv.h || argv.help) {
console.log("Usage: ./index.js [OPTIONS]");
console.log(" ./index.js -l en,de");
console.log(" ./index.js --languages en --output ./result.json");
console.log(" ");
console.log("Options:");
console.log(" -L, --languages List of languages");
console.log(" -O, --output Output file");
console.log(" ");
console.log("Commands:");
console.log(" -h, --help Show this help text");
console.log(" -v, --verbose Explain what is being done");
process.exit(0);
}
if (typeof argv.L === "undefined" && typeof argv.languages === "undefined") {
console.log("List of languages are missing, see ./index -h for more information.");
process.exit(1);
}
let output = argv.O ? argv.O : argv.output;
if (typeof output === "undefined") {
output = "./result.json";
}
const langOption = argv.L ? argv.L : argv.languages;
const languages = langOption.split(",");
console.log("Getting information for: " + langOption);
const arr = [
service.getPostalCodes(),
service.getSubDivisions()
];
for (let i = 0; i < languages.length; i++) {
const language = languages[i];
arr.push(service.getData(language));
}
Promise.all(arr)
.then((responses) => {
const postalCodes = responses.shift();
const subdivisions = responses.shift();
return mapper.mapCountries(languages, responses, postalCodes, subdivisions);
})
.then((result) => {
const text = JSON.stringify(result);
return fm.writeFile(output, text);
})
.then(() => {
process.exit(0);
})
.catch((err) => {
console.log(err);
process.exit(1);
});