@accounter/israeli-vat-scraper
Version:
Scraper app for fetching Israeli VAT data
37 lines (36 loc) • 1.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.vatScraper = void 0;
const node_module_1 = require("node:module");
const dotenv_1 = require("dotenv");
const login_handler_js_1 = require("./handlers/login-handler.js");
const main_page_handler_js_1 = require("./handlers/main-page-handler.js");
const schema_validator_js_1 = require("./utils/schema-validator.js");
(0, dotenv_1.config)({ path: [`.env`, `../../.env`] });
const defaultConfig = {
visibleBrowser: false,
expandData: true,
sortDescending: false,
validate: true,
printErrors: true,
years: undefined,
logger: console,
};
const vatScraper = async (credentials, userConfig = {}) => {
try {
(0, login_handler_js_1.updateCredentials)(credentials || (0, login_handler_js_1.getEnvCredentials)());
const config = { ...defaultConfig, ...userConfig };
const reports = await (0, main_page_handler_js_1.homePageHandler)(config);
if (config.validate) {
const requireFile = (0, node_module_1.createRequire)(__dirname); // construct the require method
const schema = requireFile('./src/vatSchema.json'); // use the require method
const validation = await (0, schema_validator_js_1.validateSchema)(schema, reports);
config.logger.log(validation);
}
return reports;
}
catch (e) {
throw new Error(`VatScraper - ${e?.message || e}`, { cause: e });
}
};
exports.vatScraper = vatScraper;