UNPKG

ph-municipalities

Version:

Lists and writes Philippine municipalities by province or region into JSON files using PAGASA 10-Day weather forecast Excel files as a data source

74 lines (61 loc) 1.93 kB
const { createInstances, updateInstances } = require('../../__tests__/provinces') const prompt = require('./prompt') const ExcelFactory = require('../classes/excelfactory') /** * Prompts user to download a new excel file or use the static local excel file as data source * @returns {ExcelHandler} */ const selectDataSource = async () => { let exit = false let url let ExcelHandler = null while (!exit) { // Prompt to enter the download URL of a remote excel file if (url === undefined) { const askDownload = await prompt('\nWould you like to download and use a remote Excel file?\nPress enter to ignore. Press Y and enter to proceed. [n/Y]: ') if (askDownload === 'Y') { while (!url) { url = await prompt('\nEnter the download URL of a remote Excel file: ') } console.log(`Downloading file from ${url}...`) try { ExcelHandler = new ExcelFactory({ url }) await ExcelHandler.init() exit = true console.log(`\nUsing the file downloaded to ${ExcelHandler.pathToFile}\nas data source`) } catch (err) { console.log(`[ERROR] ${err.message}`) ExcelHandler = null exit = true } } else { ExcelHandler = new ExcelFactory() exit = true url = false console.log(`\nUsing the default local excel file ${ExcelHandler.pathToFile}\nas data source`) } } } // Display parsing/info logs const { allExcelProvinces, allProvinces, uniqueExcelProvinces: uniqueExcelList, uniqueProvinces: uniqueProvinceList, fromConfig, fromExcel } = createInstances(ExcelHandler) updateInstances({ allExcelProvinces, allProvinces, uniqueExcelProvinces: uniqueExcelList, uniqueProvinces: uniqueProvinceList, fromConfig, fromExcel }) return ExcelHandler } module.exports = selectDataSource