browserless 9.12.0 → 9.12.2-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/LICENSE.md +0 -0
  2. package/package.json +9 -9
  3. package/src/index.js +40 -41
package/LICENSE.md CHANGED
File without changes
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "browserless",
3
3
  "description": "The headless Chrome/Chromium performance driver for Node.js",
4
4
  "homepage": "https://browserless.js.org",
5
- "version": "9.12.0",
5
+ "version": "9.12.2-0",
6
6
  "main": "src/index.js",
7
7
  "author": {
8
8
  "email": "hello@microlink.io",
@@ -32,9 +32,9 @@
32
32
  ],
33
33
  "dependencies": {
34
34
  "@browserless/errors": "^9.10.2",
35
- "@browserless/goto": "^9.11.0",
36
- "@browserless/pdf": "^9.11.0",
37
- "@browserless/screenshot": "^9.11.0",
35
+ "@browserless/goto": "^9.12.1",
36
+ "@browserless/pdf": "^9.12.1",
37
+ "@browserless/screenshot": "^9.12.1",
38
38
  "debug-logfmt": "~1.0.4",
39
39
  "kill-process-group": "~1.0.3",
40
40
  "p-reflect": "~2.1.0",
@@ -44,6 +44,7 @@
44
44
  "superlock": "~1.0.1"
45
45
  },
46
46
  "devDependencies": {
47
+ "ps-list": "7",
47
48
  "@browserless/test": "^9.11.0",
48
49
  "ava": "latest"
49
50
  },
@@ -53,14 +54,13 @@
53
54
  "files": [
54
55
  "src"
55
56
  ],
56
- "scripts": {
57
- "test": "ava"
58
- },
59
57
  "license": "MIT",
60
58
  "ava": {
61
59
  "serial": true,
62
60
  "timeout": "30s",
63
61
  "workerThreads": false
64
62
  },
65
- "gitHead": "a996a7bd3f068dbe800001c0399f51ddff8d901d"
66
- }
63
+ "scripts": {
64
+ "test": "ava"
65
+ }
66
+ }
package/src/index.js CHANGED
@@ -24,7 +24,9 @@ module.exports = ({ timeout: globalTimeout = 30000, ...launchOpts } = {}) => {
24
24
 
25
25
  const close = opts => {
26
26
  isClosed = true
27
- return browserProcessPromise.then(browserProcess => driver.close(browserProcess, opts))
27
+ return browserProcessPromise
28
+ .then(browserProcess => driver.close(browserProcess, opts))
29
+ .catch(() => {})
28
30
  }
29
31
 
30
32
  const respawn = () =>
@@ -107,53 +109,50 @@ module.exports = ({ timeout: globalTimeout = 30000, ...launchOpts } = {}) => {
107
109
  }
108
110
  }
109
111
 
110
- const withPage =
111
- (fn, { timeout: evaluateTimeout } = {}) =>
112
- async (...args) => {
113
- let isRejected = false
114
-
115
- async function run () {
116
- let page
117
-
118
- try {
119
- page = await createPage(args)
120
- setTimeout(() => closePage(page), timeout).unref()
112
+ const withPage = (fn, { timeout: evaluateTimeout } = {}) => async (...args) => {
113
+ let isRejected = false
114
+
115
+ async function run () {
116
+ let page
117
+
118
+ try {
119
+ page = await createPage(args)
120
+ setTimeout(() => closePage(page), timeout).unref()
121
+ const value = await fn(page, goto)(...args)
122
+ await closePage(page)
123
+ return value
124
+ } catch (error) {
125
+ await closePage(page)
126
+ if (!isRejected) throw ensureError(error)
127
+ }
128
+ }
121
129
 
122
- const value = await fn(page, goto)(...args)
123
- await closePage(page)
124
- return value
125
- } catch (error) {
126
- await closePage(page)
127
- if (!isRejected) throw ensureError(error)
130
+ const task = () =>
131
+ pRetry(run, {
132
+ retries: retry,
133
+ onFailedAttempt: async error => {
134
+ debug('onFailedAttempt', { name: error.name, code: error.code, isRejected })
135
+ if (error.name === 'AbortError') throw error
136
+ if (isRejected) throw new AbortError()
137
+ if (error.code === 'EBRWSRCONTEXTCONNRESET') {
138
+ _contextPromise = createBrowserContext(contextOpts)
128
139
  }
140
+ const { message, attemptNumber, retriesLeft } = error
141
+ debug('retry', { attemptNumber, retriesLeft, message })
129
142
  }
143
+ })
130
144
 
131
- const task = () =>
132
- pRetry(run, {
133
- retries: retry,
134
- onFailedAttempt: async error => {
135
- debug('onFailedAttempt', { name: error.name, code: error.code, isRejected })
136
- if (error.name === 'AbortError') throw error
137
- if (isRejected) throw new AbortError()
138
- if (error.code === 'EBRWSRCONTEXTCONNRESET') {
139
- _contextPromise = createBrowserContext(contextOpts)
140
- }
141
- const { message, attemptNumber, retriesLeft } = error
142
- debug('retry', { attemptNumber, retriesLeft, message })
143
- }
144
- })
145
-
146
- const timeout = evaluateTimeout || contextTimeout || globalTimeout
147
-
148
- return pTimeout(task(), timeout, () => {
149
- isRejected = true
150
- throw browserTimeout({ timeout })
151
- })
152
- }
145
+ const timeout = evaluateTimeout || contextTimeout || globalTimeout
146
+
147
+ return pTimeout(task(), timeout, () => {
148
+ isRejected = true
149
+ throw browserTimeout({ timeout })
150
+ })
151
+ }
153
152
 
154
153
  const evaluate = (fn, gotoOpts) =>
155
154
  withPage(
156
- page => async (url, opts) => {
155
+ (page, goto) => async (url, opts) => {
157
156
  const { response, error } = await goto(page, { url, ...gotoOpts, ...opts })
158
157
  return fn(page, response, error)
159
158
  },