UNPKG

@accounter/israeli-vat-scraper

Version:
33 lines (32 loc) 1.24 kB
import { createRequire } from 'node:module'; import { config } from 'dotenv'; import { getEnvCredentials, updateCredentials } from './handlers/login-handler.js'; import { homePageHandler } from './handlers/main-page-handler.js'; import { validateSchema } from './utils/schema-validator.js'; config({ path: [`.env`, `../../.env`] }); const defaultConfig = { visibleBrowser: false, expandData: true, sortDescending: false, validate: true, printErrors: true, years: undefined, logger: console, }; export const vatScraper = async (credentials, userConfig = {}) => { try { updateCredentials(credentials || getEnvCredentials()); const config = { ...defaultConfig, ...userConfig }; const reports = await homePageHandler(config); if (config.validate) { const requireFile = createRequire(__dirname); // construct the require method const schema = requireFile('./src/vatSchema.json'); // use the require method const validation = await validateSchema(schema, reports); config.logger.log(validation); } return reports; } catch (e) { throw new Error(`VatScraper - ${e?.message || e}`, { cause: e }); } };