@datawheel/bespoke 0.6.0-rc.5 → 0.6.0-rc.7
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.
- package/dist/server.js +19 -18
- package/package.json +2 -1
package/dist/server.js
CHANGED
|
@@ -26,6 +26,7 @@ import * as allIcons from '@tabler/icons-react';
|
|
|
26
26
|
import NextCors from 'nextjs-cors';
|
|
27
27
|
import imageType from 'image-type';
|
|
28
28
|
import formidable from 'formidable';
|
|
29
|
+
import { BrowserPool, PlaywrightPlugin } from '@crawlee/browser-pool';
|
|
29
30
|
import { chromium } from 'playwright-chromium';
|
|
30
31
|
import DomParser from 'dom-parser';
|
|
31
32
|
import path from 'path';
|
|
@@ -4260,34 +4261,34 @@ var minimal_args = [
|
|
|
4260
4261
|
"--no-sandbox"
|
|
4261
4262
|
];
|
|
4262
4263
|
var TIME = "playwright";
|
|
4263
|
-
|
|
4264
|
-
|
|
4265
|
-
|
|
4266
|
-
|
|
4267
|
-
|
|
4268
|
-
|
|
4269
|
-
|
|
4264
|
+
var width = 1366;
|
|
4265
|
+
var height = 768;
|
|
4266
|
+
var browserPool = new BrowserPool({
|
|
4267
|
+
browserPlugins: [new PlaywrightPlugin(chromium, {
|
|
4268
|
+
launchOptions: {
|
|
4269
|
+
headless: true,
|
|
4270
|
+
excecutablePath: process.env.PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH,
|
|
4270
4271
|
args: [
|
|
4271
4272
|
`--window-size=${width},${height}`,
|
|
4272
4273
|
...minimal_args
|
|
4273
|
-
]
|
|
4274
|
-
});
|
|
4275
|
-
const context = await browser.newContext({
|
|
4274
|
+
],
|
|
4276
4275
|
viewport: { width, height },
|
|
4277
4276
|
deviceScaleFactor: 2
|
|
4278
|
-
}
|
|
4277
|
+
}
|
|
4278
|
+
})]
|
|
4279
|
+
});
|
|
4280
|
+
async function generateImage(path2, section, format = "png", transparent = false) {
|
|
4281
|
+
console.time(TIME);
|
|
4282
|
+
try {
|
|
4279
4283
|
console.timeLog(TIME, "Browser started");
|
|
4280
4284
|
const url = new URL(path2);
|
|
4281
4285
|
const searchParams = new URLSearchParams(url.search);
|
|
4282
4286
|
url.search = searchParams.toString();
|
|
4283
|
-
const page = await
|
|
4287
|
+
const page = await browserPool.newPage();
|
|
4284
4288
|
console.timeLog(TIME, "Creating page");
|
|
4285
|
-
await page.addStyleTag({ content: ".bespoke-Section-container{ padding: 1rem !important }" });
|
|
4286
4289
|
console.timeLog(TIME, "Setting request interceptor");
|
|
4287
|
-
await page.goto(url.toString()
|
|
4290
|
+
await page.goto(url.toString());
|
|
4288
4291
|
console.timeLog(TIME, "Navigated to page");
|
|
4289
|
-
await page.waitForSelector("#bespoke-report", { timeout: maxTimeoutPerPage });
|
|
4290
|
-
console.timeLog(TIME, "Selector detected");
|
|
4291
4292
|
await page.waitForLoadState("networkidle");
|
|
4292
4293
|
if (transparent) {
|
|
4293
4294
|
await page.$eval(`.bespoke-Section-${section}`, (el) => el["style"].background = "transparent");
|
|
@@ -4299,7 +4300,7 @@ async function generateImage(path2, section, format = "png", transparent = false
|
|
|
4299
4300
|
const svg = await element?.evaluate((el) => el.outerHTML);
|
|
4300
4301
|
console.timeLog(TIME, "Finishing SVG");
|
|
4301
4302
|
console.timeEnd(TIME);
|
|
4302
|
-
await
|
|
4303
|
+
await page.close();
|
|
4303
4304
|
return svg?.replace(/ {4}|[\t\n\r]/gm, "");
|
|
4304
4305
|
} else {
|
|
4305
4306
|
const element = await page.$(".bespoke-Section-container");
|
|
@@ -4309,7 +4310,7 @@ async function generateImage(path2, section, format = "png", transparent = false
|
|
|
4309
4310
|
});
|
|
4310
4311
|
console.timeLog(TIME, "Finishing PNG");
|
|
4311
4312
|
console.timeEnd(TIME);
|
|
4312
|
-
await
|
|
4313
|
+
await page.close();
|
|
4313
4314
|
return screenshot;
|
|
4314
4315
|
}
|
|
4315
4316
|
} catch (error) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@datawheel/bespoke",
|
|
3
|
-
"version": "0.6.0-rc.
|
|
3
|
+
"version": "0.6.0-rc.7",
|
|
4
4
|
"description": "Content management system for creating automated data reports",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
"homepage": "https://github.com/Datawheel/reports#readme",
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@auth0/nextjs-auth0": "^3.5.0",
|
|
43
|
+
"@crawlee/browser-pool": "^3.10.2",
|
|
43
44
|
"@emotion/react": "^11.10.4",
|
|
44
45
|
"@hello-pangea/dnd": "16.3.0",
|
|
45
46
|
"@mantine/core": "^6.0.19",
|