UNPKG

@accounter/israeli-vat-scraper

Version:
59 lines (58 loc) 2.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.homePageHandler = void 0; const browser_util_js_1 = require("../utils/browser-util.js"); const dates_js_1 = require("../utils/dates.js"); const evaluation_functions_js_1 = require("../utils/evaluation-functions.js"); const page_util_js_1 = require("../utils/page-util.js"); const user_prompt_js_1 = require("../utils/user-prompt.js"); const year_handler_js_1 = require("./year-handler.js"); const homePageHandler = async (config) => { let page = null; try { const prompt = new user_prompt_js_1.UserPrompt(); page = await (0, browser_util_js_1.newHomePage)(config.visibleBrowser, config.logger); config.logger.log('Logged in'); /* get available years */ await (0, page_util_js_1.waitForSelectorPlus)(page, '#ContentUsersPage_DdlTkufa', config.logger); const taxYears = await page.evaluate(evaluation_functions_js_1.getSelectOptions, 'select#ContentUsersPage_DdlTkufa > option'); const reports = []; const years = {}; if (config.years) { for (const item of config.years) { if (typeof item === 'number') { years[item] = []; } else { years[item[0]] = item[1]; } } } await Promise.all(taxYears.map(async (year) => { const numYear = parseInt(year.value); if (!years || years[numYear]) { const months = years[numYear]?.length ? years[numYear] : null; const reportsYearHandler = new year_handler_js_1.YearHandler(config, prompt, [year.value], months); return reportsYearHandler.handle(config.logger); } return []; })).then(reportsLists => { for (const list of reportsLists) { reports.push(...list); } }); page.browser().close(); reports.sort((a, b) => (config.sortDescending ? (0, dates_js_1.parseDate)(a.reportMonth) < (0, dates_js_1.parseDate)(b.reportMonth) && 1 : (0, dates_js_1.parseDate)(a.reportMonth) > (0, dates_js_1.parseDate)(b.reportMonth) && 1) || -1); if (config.printErrors) { prompt.printErrors(config.logger); } return reports; } catch (e) { page?.browser().close(); throw new Error(`reportsHandler - ${e?.message || e}`, { cause: e }); } }; exports.homePageHandler = homePageHandler;