diff --git a/src/Client.js b/src/Client.js index 776991c..e1e2255 100644 --- a/src/Client.js +++ b/src/Client.js @@ -66,7 +66,7 @@ class Client extends EventEmitter { if (this.options.session) { // Check if session restore was successfull try { - await page.waitForSelector(KEEP_PHONE_CONNECTED_IMG_SELECTOR, { timeout: 45000 }); + await page.waitForSelector(KEEP_PHONE_CONNECTED_IMG_SELECTOR, { timeout: this.options.authTimeoutMs }); } catch (err) { if (err.name === 'TimeoutError') { /** @@ -99,7 +99,7 @@ class Client extends EventEmitter { // Wait for QR Code const QR_CANVAS_SELECTOR = 'canvas'; - await page.waitForSelector(QR_CANVAS_SELECTOR, { timeout: 45000 }); + await page.waitForSelector(QR_CANVAS_SELECTOR, { timeout: this.options.qrTimeoutMs }); const qrImgData = await page.$eval(QR_CANVAS_SELECTOR, canvas => [].slice.call(canvas.getContext('2d').getImageData(0, 0, 264, 264).data)); const qr = jsQR(qrImgData, 264, 264).data; /** @@ -110,7 +110,7 @@ class Client extends EventEmitter { this.emit(Events.QR_RECEIVED, qr); }; getQrCode(); - let retryInterval = setInterval(getQrCode, 20000); // check for qr code every 20 seconds + let retryInterval = setInterval(getQrCode, this.options.qrRefreshIntervalMs); // Wait for code scan await page.waitForSelector(KEEP_PHONE_CONNECTED_IMG_SELECTOR, { timeout: 0 }); diff --git a/src/util/Constants.js b/src/util/Constants.js index a2a6886..d25903f 100644 --- a/src/util/Constants.js +++ b/src/util/Constants.js @@ -8,7 +8,10 @@ exports.DefaultOptions = { puppeteer: { headless: true }, - session: false + session: false, + qrTimeoutMs: 45000, + qrRefreshIntervalMs: 20000, + authTimeoutMs: 45000, }; /**