UNPKG

chrome-remote-interface-extra

Version:

Bringing a puppeteer like API and more to the chrome-remote-interface by cyrus-and

84 lines (74 loc) 1.85 kB
const util = require('util') const DEFAULT_TIMEOUT = 30000 class TimeoutSettings { constructor () { /** * The default timeout used for waits * @type {?number} * @private */ this._defaultTimeout = null /** * The default timeout used for navigation * @type {?number} * @private */ this._defaultNavigationTimeout = null } /** * Set the default timeout used for waits * @param {number} timeout */ setDefaultTimeout (timeout) { this._defaultTimeout = timeout } /** * Set the default timeout used for navigation * @param {number} timeout */ setDefaultNavigationTimeout (timeout) { this._defaultNavigationTimeout = timeout } /** * Retrieve the timeout amount used for navigation * @return {number} */ navigationTimeout () { if (this._defaultNavigationTimeout != null) { return this._defaultNavigationTimeout } if (this._defaultTimeout != null) { return this._defaultTimeout } return DEFAULT_TIMEOUT } /** * Retrieve the timeout amount used for waits * @return {number} */ timeout () { if (this._defaultTimeout != null) { return this._defaultTimeout } return DEFAULT_TIMEOUT } /** @ignore */ // eslint-disable-next-line space-before-function-paren [util.inspect.custom](depth, options) { if (depth < 0) { return options.stylize('[TimeoutSettings]', 'special') } const newOptions = Object.assign({}, options, { depth: options.depth == null ? null : options.depth - 1 }) const inner = util.inspect( { navigationTimeout: this.navigationTimeout(), timeout: this.timeout() }, newOptions ) return `${options.stylize('TimeoutSettings', 'special')} ${inner}` } } module.exports = TimeoutSettings