Skip to content

Commit 3228de7

Browse files
Merge pull request #162 from devoxa/add-default-global-wait-options
Add global default options for *waitForNetworkIdle functions
2 parents 7d1e8a6 + 424f52b commit 3228de7

2 files changed

Lines changed: 18 additions & 3 deletions

File tree

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,12 @@ await reloadAndWaitForNetworkIdle(page, url, options?)
207207
208208
Reload the page and wait for all network requests to be settled.
209209
210+
```ts
211+
WaitForNetworkIdleDefaultOptions.minIdleTime = 500
212+
```
213+
214+
Set the global default options for all `*waitForNetworkIdle` functions.
215+
210216
## Contributors
211217
212218
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):

src/waitForNetworkIdle.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,27 @@ interface WaitForNetworkIdleOptions {
66
debug?: boolean
77
}
88

9+
/** Global default options for all `*waitForNetworkIdle` functions. */
10+
export const WaitForNetworkIdleDefaultOptions: Required<WaitForNetworkIdleOptions> = {
11+
timeout: 10000,
12+
minIdleTime: 200,
13+
debug: false,
14+
}
15+
916
/** Wait for all network requests to be settled before resolving. */
1017
export function waitForNetworkIdle(page: Page, pOptions?: WaitForNetworkIdleOptions) {
18+
const options = { ...WaitForNetworkIdleDefaultOptions, ...pOptions }
19+
1120
function debug(message: string) {
12-
if (!pOptions?.debug) return
21+
if (!options.debug) return
1322
console.log(`[waitForNetworkIdle] ${message}`)
1423
}
1524

1625
return new Promise<void>((_resolve, _reject) => {
1726
let isSettled = false
1827
const inFlightRequestsMap: Record<string, number> = {}
1928
let resolveTimeout: NodeJS.Timeout | undefined = undefined
20-
const rejectTimeout = setTimeout(reject, pOptions?.timeout || 10000)
29+
const rejectTimeout = setTimeout(reject, options.timeout)
2130

2231
function resolve() {
2332
clearTimeout(rejectTimeout)
@@ -61,7 +70,7 @@ export function waitForNetworkIdle(page: Page, pOptions?: WaitForNetworkIdleOpti
6170
inFlightRequestsMap[url] = (inFlightRequestsMap[url] || 1) - 1
6271

6372
if (getInFlightRequests().length === 0) {
64-
resolveTimeout = setTimeout(resolve, pOptions?.minIdleTime || 200)
73+
resolveTimeout = setTimeout(resolve, options.minIdleTime)
6574
}
6675
}
6776

0 commit comments

Comments
 (0)