UNPKG

israeli-bank-scrapers-core

Version:

Provide scrapers for all major Israeli banks and credit card companies

63 lines (61 loc) 7.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TimeoutError = exports.SECOND = void 0; exports.raceTimeout = raceTimeout; exports.randomDelay = randomDelay; exports.runSerial = runSerial; exports.sleep = sleep; exports.waitUntil = waitUntil; class TimeoutError extends Error {} exports.TimeoutError = TimeoutError; const SECOND = exports.SECOND = 1000; function timeoutPromise(ms, promise, description) { const timeout = new Promise((_, reject) => { const id = setTimeout(() => { clearTimeout(id); const error = new TimeoutError(description); reject(error); }, ms); }); return Promise.race([promise, // casting to avoid type error- safe since this promise will always reject timeout]); } /** * Wait until a promise resolves with a truthy value or reject after a timeout */ function waitUntil(asyncTest, description = '', timeout = 10000, interval = 100) { const promise = new Promise((resolve, reject) => { function wait() { asyncTest().then(value => { if (value) { resolve(value); } else { setTimeout(wait, interval); } }).catch(() => { reject(); }); } wait(); }); return timeoutPromise(timeout, promise, description); } function raceTimeout(ms, promise) { return timeoutPromise(ms, promise, 'timeout').catch(err => { if (!(err instanceof TimeoutError)) throw err; }); } function runSerial(actions) { return actions.reduce((m, a) => m.then(async x => [...x, await a()]), Promise.resolve(new Array())); } function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } function randomDelay(min = 500, max = 2000) { const delay = Math.floor(Math.random() * (max - min + 1)) + min; return new Promise(resolve => setTimeout(resolve, delay)); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUaW1lb3V0RXJyb3IiLCJFcnJvciIsImV4cG9ydHMiLCJTRUNPTkQiLCJ0aW1lb3V0UHJvbWlzZSIsIm1zIiwicHJvbWlzZSIsImRlc2NyaXB0aW9uIiwidGltZW91dCIsIlByb21pc2UiLCJfIiwicmVqZWN0IiwiaWQiLCJzZXRUaW1lb3V0IiwiY2xlYXJUaW1lb3V0IiwiZXJyb3IiLCJyYWNlIiwid2FpdFVudGlsIiwiYXN5bmNUZXN0IiwiaW50ZXJ2YWwiLCJyZXNvbHZlIiwid2FpdCIsInRoZW4iLCJ2YWx1ZSIsImNhdGNoIiwicmFjZVRpbWVvdXQiLCJlcnIiLCJydW5TZXJpYWwiLCJhY3Rpb25zIiwicmVkdWNlIiwibSIsImEiLCJ4IiwiQXJyYXkiLCJzbGVlcCIsInJhbmRvbURlbGF5IiwibWluIiwibWF4IiwiZGVsYXkiLCJNYXRoIiwiZmxvb3IiLCJyYW5kb20iXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy93YWl0aW5nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbInR5cGUgRmFsc3kgPSBmYWxzZSB8ICcnIHwgMCB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCBjbGFzcyBUaW1lb3V0RXJyb3IgZXh0ZW5kcyBFcnJvciB7fVxuXG5leHBvcnQgY29uc3QgU0VDT05EID0gMTAwMDtcblxudHlwZSBXYWl0VW50aWxSZXR1cm48VD4gPSBUIGV4dGVuZHMgRmFsc3kgPyBuZXZlciA6IFByb21pc2U8Tm9uTnVsbGFibGU8VD4+O1xuXG5mdW5jdGlvbiB0aW1lb3V0UHJvbWlzZTxUPihtczogbnVtYmVyLCBwcm9taXNlOiBQcm9taXNlPFQ+LCBkZXNjcmlwdGlvbjogc3RyaW5nKTogUHJvbWlzZTxUPiB7XG4gIGNvbnN0IHRpbWVvdXQgPSBuZXcgUHJvbWlzZSgoXywgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgaWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNsZWFyVGltZW91dChpZCk7XG4gICAgICBjb25zdCBlcnJvciA9IG5ldyBUaW1lb3V0RXJyb3IoZGVzY3JpcHRpb24pO1xuICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICB9LCBtcyk7XG4gIH0pO1xuXG4gIHJldHVybiBQcm9taXNlLnJhY2UoW1xuICAgIHByb21pc2UsXG4gICAgLy8gY2FzdGluZyB0byBhdm9pZCB0eXBlIGVycm9yLSBzYWZlIHNpbmNlIHRoaXMgcHJvbWlzZSB3aWxsIGFsd2F5cyByZWplY3RcbiAgICB0aW1lb3V0IGFzIFByb21pc2U8VD4sXG4gIF0pO1xufVxuXG4vKipcbiAqIFdhaXQgdW50aWwgYSBwcm9taXNlIHJlc29sdmVzIHdpdGggYSB0cnV0aHkgdmFsdWUgb3IgcmVqZWN0IGFmdGVyIGEgdGltZW91dFxuICovXG5leHBvcnQgZnVuY3Rpb24gd2FpdFVudGlsPFQ+KFxuICBhc3luY1Rlc3Q6ICgpID0+IFByb21pc2U8VD4sXG4gIGRlc2NyaXB0aW9uID0gJycsXG4gIHRpbWVvdXQgPSAxMDAwMCxcbiAgaW50ZXJ2YWwgPSAxMDAsXG4pOiBXYWl0VW50aWxSZXR1cm48VD4ge1xuICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2U8Tm9uTnVsbGFibGU8VD4+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBmdW5jdGlvbiB3YWl0KCkge1xuICAgICAgYXN5bmNUZXN0KClcbiAgICAgICAgLnRoZW4odmFsdWUgPT4ge1xuICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgcmVzb2x2ZSh2YWx1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQod2FpdCwgaW50ZXJ2YWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHdhaXQoKTtcbiAgfSk7XG4gIHJldHVybiB0aW1lb3V0UHJvbWlzZSh0aW1lb3V0LCBwcm9taXNlLCBkZXNjcmlwdGlvbikgYXMgV2FpdFVudGlsUmV0dXJuPFQ+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmFjZVRpbWVvdXQobXM6IG51bWJlciwgcHJvbWlzZTogUHJvbWlzZTxhbnk+KSB7XG4gIHJldHVybiB0aW1lb3V0UHJvbWlzZShtcywgcHJvbWlzZSwgJ3RpbWVvdXQnKS5jYXRjaChlcnIgPT4ge1xuICAgIGlmICghKGVyciBpbnN0YW5jZW9mIFRpbWVvdXRFcnJvcikpIHRocm93IGVycjtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBydW5TZXJpYWw8VD4oYWN0aW9uczogKCgpID0+IFByb21pc2U8VD4pW10pOiBQcm9taXNlPFRbXT4ge1xuICByZXR1cm4gYWN0aW9ucy5yZWR1Y2UoKG0sIGEpID0+IG0udGhlbihhc3luYyB4ID0+IFsuLi54LCBhd2FpdCBhKCldKSwgUHJvbWlzZS5yZXNvbHZlPFRbXT4obmV3IEFycmF5PFQ+KCkpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNsZWVwKG1zOiBudW1iZXIpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCBtcykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmFuZG9tRGVsYXkobWluOiBudW1iZXIgPSA1MDAsIG1heDogbnVtYmVyID0gMjAwMCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBkZWxheSA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIChtYXggLSBtaW4gKyAxKSkgKyBtaW47XG4gIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgZGVsYXkpKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFFTyxNQUFNQSxZQUFZLFNBQVNDLEtBQUssQ0FBQztBQUFFQyxPQUFBLENBQUFGLFlBQUEsR0FBQUEsWUFBQTtBQUVuQyxNQUFNRyxNQUFNLEdBQUFELE9BQUEsQ0FBQUMsTUFBQSxHQUFHLElBQUk7QUFJMUIsU0FBU0MsY0FBY0EsQ0FBSUMsRUFBVSxFQUFFQyxP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