Spaces:
Build error
Build error
fix
Browse files
backend/functions/.puppeteerrc.cjs
CHANGED
|
@@ -1,9 +1,14 @@
|
|
| 1 |
const {join} = require('path');
|
| 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3 |
/**
|
| 4 |
* @type {import("puppeteer").Configuration}
|
| 5 |
*/
|
| 6 |
-
module.exports =
|
| 7 |
-
// Changes the cache location for Puppeteer.
|
| 8 |
-
cacheDirectory: join(__dirname, '.cache', 'puppeteer'),
|
| 9 |
-
};
|
|
|
|
| 1 |
const {join} = require('path');
|
| 2 |
|
| 3 |
+
let config = {};
|
| 4 |
+
if (!process.env.FUNCTIONS_EMULATOR) {
|
| 5 |
+
config = {
|
| 6 |
+
// Changes the cache location for Puppeteer.
|
| 7 |
+
cacheDirectory: join(__dirname, '.cache', 'puppeteer'),
|
| 8 |
+
};
|
| 9 |
+
}
|
| 10 |
+
|
| 11 |
/**
|
| 12 |
* @type {import("puppeteer").Configuration}
|
| 13 |
*/
|
| 14 |
+
module.exports = config;
|
|
|
|
|
|
|
|
|
backend/functions/package.json
CHANGED
|
@@ -19,7 +19,7 @@
|
|
| 19 |
"start": "npm run shell",
|
| 20 |
"deploy": "firebase deploy --only functions",
|
| 21 |
"logs": "firebase functions:log",
|
| 22 |
-
"gcp-build": "node node_modules/puppeteer/install.
|
| 23 |
},
|
| 24 |
"engines": {
|
| 25 |
"node": "20"
|
|
|
|
| 19 |
"start": "npm run shell",
|
| 20 |
"deploy": "firebase deploy --only functions",
|
| 21 |
"logs": "firebase functions:log",
|
| 22 |
+
"gcp-build": "node node_modules/puppeteer/install.mjs"
|
| 23 |
},
|
| 24 |
"engines": {
|
| 25 |
"node": "20"
|
backend/functions/src/index.ts
CHANGED
|
@@ -30,3 +30,5 @@ Object.assign(exports, registry.exportGrouped({
|
|
| 30 |
}));
|
| 31 |
registry.title = 'url2text';
|
| 32 |
registry.version = '0.1.0';
|
|
|
|
|
|
|
|
|
| 30 |
}));
|
| 31 |
registry.title = 'url2text';
|
| 32 |
registry.version = '0.1.0';
|
| 33 |
+
|
| 34 |
+
process.on('unhandledRejection', () => 'no big deal');
|
backend/functions/src/services/puppeteer.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
import { AsyncService, Defer, HashManager, marshalErrorLike } from 'civkit';
|
| 2 |
import { container, singleton } from 'tsyringe';
|
| 3 |
import puppeteer, { Browser } from 'puppeteer';
|
| 4 |
import { Logger } from '../shared/services/logger';
|
|
@@ -72,7 +72,6 @@ export class PuppeteerControl extends AsyncService {
|
|
| 72 |
}
|
| 73 |
this.browser = await puppeteer.launch({
|
| 74 |
headless: true,
|
| 75 |
-
args: ['--no-sandbox', '--disable-setuid-sandbox'],
|
| 76 |
});
|
| 77 |
this.browser.once('disconnected', () => {
|
| 78 |
this.logger.warn(`Browser disconnected`);
|
|
@@ -212,20 +211,20 @@ function giveSnapshot() {
|
|
| 212 |
});
|
| 213 |
|
| 214 |
return r;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 215 |
});
|
| 216 |
|
| 217 |
-
gotoPromise.catch((err) => {
|
| 218 |
-
this.logger.warn(`Browsing of ${url} not fully done`, { err: marshalErrorLike(err) });
|
| 219 |
-
}).finally(() => {
|
| 220 |
-
finalized = true;
|
| 221 |
-
});
|
| 222 |
-
|
| 223 |
try {
|
| 224 |
while (true) {
|
| 225 |
await Promise.race([nextSnapshotDeferred.promise, gotoPromise]);
|
| 226 |
if (finalized) {
|
| 227 |
-
await gotoPromise;
|
| 228 |
-
|
| 229 |
yield { ...snapshot, screenshot };
|
| 230 |
break;
|
| 231 |
}
|
|
|
|
| 1 |
+
import { AssertionFailureError, AsyncService, Defer, HashManager, marshalErrorLike } from 'civkit';
|
| 2 |
import { container, singleton } from 'tsyringe';
|
| 3 |
import puppeteer, { Browser } from 'puppeteer';
|
| 4 |
import { Logger } from '../shared/services/logger';
|
|
|
|
| 72 |
}
|
| 73 |
this.browser = await puppeteer.launch({
|
| 74 |
headless: true,
|
|
|
|
| 75 |
});
|
| 76 |
this.browser.once('disconnected', () => {
|
| 77 |
this.logger.warn(`Browser disconnected`);
|
|
|
|
| 211 |
});
|
| 212 |
|
| 213 |
return r;
|
| 214 |
+
}).catch((err) => {
|
| 215 |
+
this.logger.warn(`Failed to goto ${url}`, { err: marshalErrorLike(err) });
|
| 216 |
+
return Promise.reject(new AssertionFailureError({
|
| 217 |
+
message: `Failed to goto ${url}: ${err}`,
|
| 218 |
+
cause: err,
|
| 219 |
+
}));
|
| 220 |
+
}).finally(() => {
|
| 221 |
+
finalized = true;
|
| 222 |
});
|
| 223 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 224 |
try {
|
| 225 |
while (true) {
|
| 226 |
await Promise.race([nextSnapshotDeferred.promise, gotoPromise]);
|
| 227 |
if (finalized) {
|
|
|
|
|
|
|
| 228 |
yield { ...snapshot, screenshot };
|
| 229 |
break;
|
| 230 |
}
|