UNPKG

unicode-countries

Version:
67 lines (56 loc) 1.86 kB
#!/usr/bin/env node "use strict"; 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); });