grover 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ec752a494049fb8bfeeb78aec6a5a553f3c6502e869163492556d2bf386b7340
4
- data.tar.gz: 8886bbe696f7f6b8510e8cf209c334c67540e560741162e503fb2505da18cc8c
3
+ metadata.gz: f2409cbc42fc0fcb80876e1d4238f08cfbeae1d7fc7dada4cb958e8178bafc95
4
+ data.tar.gz: 8189bc362f4979028340f17095c0e9aade0d7950f605fb2062740452316e2b60
5
5
  SHA512:
6
- metadata.gz: 1f0e2c7d80edc1a037b863ecc14cc117671d030602d1ff243114efd81ccae8e3dbbf31bc98a61b3f63158c68eb87097aaa7feb86215eaff007e336defe9efd5e
7
- data.tar.gz: 97aa4ad8721ea2f689af1cb9cbcbeb429c663f35942ebcfcd5007c6e51df66def829965dac16a4a0ec002d93885c8a88a2515784abb024fb097edac922cbcea8
6
+ metadata.gz: 0ed3057d89a650c43dbd5c606edcef96e31702cde46a18896af692aaa0b000c2824df2cc90d33e2a8767486940cc4063a2c28bdd609b459579d698fb282465b4
7
+ data.tar.gz: 23ede80fa749b4095cf94733690d398fd5027c33a1d11adccc63fa3300dbc2cf89e466c6ff8e8b63be6f67a3a00eff91d9c3c9124ea98d37ef4ab86df439fb3d
@@ -11,7 +11,7 @@ try {
11
11
  process.stdout.write("[\"ok\"]\n");
12
12
 
13
13
  const _processPage = (async (convertAction, urlOrHtml, options) => {
14
- let browser;
14
+ let browser, errors = [];
15
15
  try {
16
16
  const launchParams = {
17
17
  args: process.env.GROVER_NO_SANDBOX === 'true' ? ['--no-sandbox', '--disable-setuid-sandbox'] : []
@@ -124,6 +124,18 @@ const _processPage = (async (convertAction, urlOrHtml, options) => {
124
124
  page.setGeolocation(geolocation);
125
125
  }
126
126
 
127
+ const raiseOnRequestFailure = options.raiseOnRequestFailure; delete options.raiseOnRequestFailure;
128
+ if (raiseOnRequestFailure) {
129
+ page.on('requestfinished', (request) => {
130
+ if (request.response() && !request.response().ok() && !request.redirectChain().length > 0) {
131
+ errors.push(request);
132
+ }
133
+ });
134
+ page.on('requestfailed', (request) => {
135
+ errors.push(request);
136
+ });
137
+ }
138
+
127
139
  const waitUntil = options.waitUntil; delete options.waitUntil;
128
140
  if (urlOrHtml.match(/^http/i)) {
129
141
  // Request is for a URL, so request it
@@ -190,6 +202,23 @@ const _processPage = (async (convertAction, urlOrHtml, options) => {
190
202
  await page.hover(hoverSelector);
191
203
  }
192
204
 
205
+ if (errors.length > 0) {
206
+ function RequestFailedError(errors) {
207
+ this.name = "RequestFailedError";
208
+ this.message = errors.map(e => {
209
+ if (e.failure()) {
210
+ return e.failure().errorText + " at " + e.url();
211
+ } else if (e.response() && e.response().status()) {
212
+ return e.response().status() + " " + e.url();
213
+ } else {
214
+ return "UnknownError " + e.url()
215
+ }
216
+ }).join("\n");
217
+ }
218
+ RequestFailedError.prototype = Error.prototype;
219
+ throw new RequestFailedError(errors);
220
+ }
221
+
193
222
  // If we're running puppeteer in headless mode, return the converted PDF
194
223
  if (debug === undefined || (typeof debug === 'object' && (debug.headless === undefined || debug.headless))) {
195
224
  return await page[convertAction](options);
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Grover
4
- VERSION = '1.0.0'
4
+ VERSION = '1.0.1'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grover
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Bromwich
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-01 00:00:00.000000000 Z
11
+ date: 2021-06-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: combine_pdf