israeli-bank-scrapers
Version:
Provide scrapers for all major Israeli banks and credit card companies
58 lines (56 loc) • 6.61 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.TimeoutError = exports.SECOND = void 0;
exports.raceTimeout = raceTimeout;
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));
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUaW1lb3V0RXJyb3IiLCJFcnJvciIsImV4cG9ydHMiLCJTRUNPTkQiLCJ0aW1lb3V0UHJvbWlzZSIsIm1zIiwicHJvbWlzZSIsImRlc2NyaXB0aW9uIiwidGltZW91dCIsIlByb21pc2UiLCJfIiwicmVqZWN0IiwiaWQiLCJzZXRUaW1lb3V0IiwiY2xlYXJUaW1lb3V0IiwiZXJyb3IiLCJyYWNlIiwid2FpdFVudGlsIiwiYXN5bmNUZXN0IiwiaW50ZXJ2YWwiLCJyZXNvbHZlIiwid2FpdCIsInRoZW4iLCJ2YWx1ZSIsImNhdGNoIiwicmFjZVRpbWVvdXQiLCJlcnIiLCJydW5TZXJpYWwiLCJhY3Rpb25zIiwicmVkdWNlIiwibSIsImEiLCJ4IiwiQXJyYXkiLCJzbGVlcCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dhaXRpbmcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFRpbWVvdXRFcnJvciBleHRlbmRzIEVycm9yIHt9XG5cbmV4cG9ydCBjb25zdCBTRUNPTkQgPSAxMDAwO1xuXG5mdW5jdGlvbiB0aW1lb3V0UHJvbWlzZTxUPihtczogbnVtYmVyLCBwcm9taXNlOiBQcm9taXNlPFQ+LCBkZXNjcmlwdGlvbjogc3RyaW5nKTogUHJvbWlzZTxUPiB7XG4gIGNvbnN0IHRpbWVvdXQgPSBuZXcgUHJvbWlzZSgoXywgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgaWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNsZWFyVGltZW91dChpZCk7XG4gICAgICBjb25zdCBlcnJvciA9IG5ldyBUaW1lb3V0RXJyb3IoZGVzY3JpcHRpb24pO1xuICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICB9LCBtcyk7XG4gIH0pO1xuXG4gIHJldHVybiBQcm9taXNlLnJhY2UoW1xuICAgIHByb21pc2UsXG4gICAgLy8gY2FzdGluZyB0byBhdm9pZCB0eXBlIGVycm9yLSBzYWZlIHNpbmNlIHRoaXMgcHJvbWlzZSB3aWxsIGFsd2F5cyByZWplY3RcbiAgICB0aW1lb3V0IGFzIFByb21pc2U8VD4sXG4gIF0pO1xufVxuXG4vKipcbiAqIFdhaXQgdW50aWwgYSBwcm9taXNlIHJlc29sdmVzIHdpdGggYSB0cnV0aHkgdmFsdWUgb3IgcmVqZWN0IGFmdGVyIGEgdGltZW91dFxuICovXG5leHBvcnQgZnVuY3Rpb24gd2FpdFVudGlsPFQ+KGFzeW5jVGVzdDogKCkgPT4gUHJvbWlzZTxUPiwgZGVzY3JpcHRpb24gPSAnJywgdGltZW91dCA9IDEwMDAwLCBpbnRlcnZhbCA9IDEwMCkge1xuICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2U8VD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGZ1bmN0aW9uIHdhaXQoKSB7XG4gICAgICBhc3luY1Rlc3QoKVxuICAgICAgICAudGhlbih2YWx1ZSA9PiB7XG4gICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICByZXNvbHZlKHZhbHVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0VGltZW91dCh3YWl0LCBpbnRlcnZhbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgIHJlamVjdCgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgd2FpdCgpO1xuICB9KTtcbiAgcmV0dXJuIHRpbWVvdXRQcm9taXNlKHRpbWVvdXQsIHByb21pc2UsIGRlc2NyaXB0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJhY2VUaW1lb3V0KG1zOiBudW1iZXIsIHByb21pc2U6IFByb21pc2U8YW55Pikge1xuICByZXR1cm4gdGltZW91dFByb21pc2UobXMsIHByb21pc2UsICd0aW1lb3V0JykuY2F0Y2goZXJyID0+IHtcbiAgICBpZiAoIShlcnIgaW5zdGFuY2VvZiBUaW1lb3V0RXJyb3IpKSB0aHJvdyBlcnI7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcnVuU2VyaWFsPFQ+KGFjdGlvbnM6ICgoKSA9PiBQcm9taXNlPFQ+KVtdKTogUHJvbWlzZTxUW10+IHtcbiAgcmV0dXJuIGFjdGlvbnMucmVkdWNlKChtLCBhKSA9PiBtLnRoZW4oYXN5bmMgeCA9PiBbLi4ueCwgYXdhaXQgYSgpXSksIFByb21pc2UucmVzb2x2ZTxUW10+KG5ldyBBcnJheTxUPigpKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzbGVlcChtczogbnVtYmVyKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgbXMpKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFPLE1BQU1BLFlBQVksU0FBU0MsS0FBSyxDQUFDO0FBQUVDLE9BQUEsQ0FBQUYsWUFBQSxHQUFBQSxZQUFBO0FBRW5DLE1BQU1HLE1BQU0sR0FBQUQsT0FBQSxDQUFBQyxNQUFBLEdBQUcsSUFBSTtBQUUxQixTQUFTQyxjQUFjQSxDQUFJQyxFQUFVLEVBQUVDLE9BQW1CLEVBQUVDLFdBQW1CLEVBQWM7RUFDM0YsTUFBTUMsT0FBTyxHQUFHLElBQUlDLE9BQU8sQ0FBQyxDQUFDQyxDQUFDLEVBQUVDLE1BQU0sS0FBSztJQUN6QyxNQUFNQyxFQUFFLEdBQUdDLFVBQVUsQ0FBQyxNQUFNO01BQzFCQyxZQUFZLENBQUNGLEVBQUUsQ0FBQztNQUNoQixNQUFNRyxLQUFLLEdBQUcsSUFBSWYsWUFBWSxDQUFDTyxXQUFXLENBQUM7TUFDM0NJLE1BQU0sQ0FBQ0ksS0FBSyxDQUFDO0lBQ2YsQ0FBQyxFQUFFVixFQUFFLENBQUM7RUFDUixDQUFDLENBQUM7RUFFRixPQUFPSSxPQUFPLENBQUNPLElBQUksQ0FBQyxDQUNsQlYsT0FBTztFQUNQO0VBQ0FFLE9BQU8sQ0FDUixDQUFDO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ08sU0FBU1MsU0FBU0EsQ0FBSUMsU0FBMkIsRUFBRVgsV0FBVyxHQUFHLEVBQUUsRUFBRUMsT0FBTyxHQUFHLEtBQUssRUFBRVcsUUFBUSxHQUFHLEdBQUcsRUFBRTtFQUMzRyxNQUFNYixPQUFPLEdBQUcsSUFBSUcsT0FBTyxDQUFJLENBQUNXLE9BQU8sRUFBRVQsTUFBTSxLQUFLO0lBQ2xELFNBQVNVLElBQUlBLENBQUEsRUFBRztNQUNkSCxTQUFTLENBQUMsQ0FBQyxDQUNSSSxJQUFJLENBQUNDLEtBQUssSUFBSTtRQUNiLElBQUlBLEtBQUssRUFBRTtVQUNUSCxPQUFPLENBQUNHLEtBQUssQ0FBQztRQUNoQixDQUFDLE1BQU07VUFDTFYsVUFBVSxDQUFDUSxJQUFJLEVBQUVGLFFBQVEsQ0FBQztRQUM1QjtNQUNGLENBQUMsQ0FBQyxDQUNESyxLQUFLLENBQUMsTUFBTTtRQUNYYixNQUFNLENBQUMsQ0FBQztNQUNWLENBQUMsQ0FBQztJQUNOO0lBQ0FVLElBQUksQ0FBQyxDQUFDO0VBQ1IsQ0FBQyxDQUFDO0VBQ0YsT0FBT2pCLGNBQWMsQ0FBQ0ksT0FBTyxFQUFFRixPQUFPLEVBQUVDLFdBQVcsQ0FBQztBQUN0RDtBQUVPLFNBQVNrQixXQUFXQSxDQUFDcEIsRUFBVSxFQUFFQyxPQUFxQixFQUFFO0VBQzdELE9BQU9GLGNBQWMsQ0FBQ0MsRUFBRSxFQUFFQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUNrQixLQUFLLENBQUNFLEdBQUcsSUFBSTtJQUN6RCxJQUFJLEVBQUVBLEdBQUcsWUFBWTFCLFlBQVksQ0FBQyxFQUFFLE1BQU0wQixHQUFHO0VBQy9DLENBQUMsQ0FBQztBQUNKO0FBRU8sU0FBU0MsU0FBU0EsQ0FBSUMsT0FBNkIsRUFBZ0I7RUFDeEUsT0FBT0EsT0FBTyxDQUFDQyxNQUFNLENBQUMsQ0FBQ0MsQ0FBQyxFQUFFQyxDQUFDLEtBQUtELENBQUMsQ0FBQ1IsSUFBSSxDQUFDLE1BQU1VLENBQUMsSUFBSSxDQUFDLEdBQUdBLENBQUMsRUFBRSxNQUFNRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRXRCLE9BQU8sQ0FBQ1csT0FBTyxDQUFNLElBQUlhLEtBQUssQ0FBSSxDQUFDLENBQUMsQ0FBQztBQUM3RztBQUVPLFNBQVNDLEtBQUtBLENBQUM3QixFQUFVLEVBQUU7RUFDaEMsT0FBTyxJQUFJSSxPQUFPLENBQUNXLE9BQU8sSUFBSVAsVUFBVSxDQUFDTyxPQUFPLEVBQUVmLEVBQUUsQ0FBQyxDQUFDO0FBQ3hEIiwiaWdub3JlTGlzdCI6W119