Skip to content

Commit 1d4ec40

Browse files
authored
fix(export): restore timetable exports through better versioning (#3736)
1 parent 38b85ce commit 1d4ec40

File tree

6 files changed

+855
-599
lines changed

6 files changed

+855
-599
lines changed

export/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
},
1919
"dependencies": {
2020
"@sentry/node": "5.30.0",
21-
"@sparticuz/chromium": "92.0.0",
21+
"@sparticuz/chromium": "^123.0.0",
2222
"axios": "0.27.2",
2323
"bunyan": "1.8.15",
2424
"fs-extra": "9.1.0",
@@ -30,7 +30,7 @@
3030
"lodash": "4.17.21",
3131
"nodemon": "2.0.22",
3232
"pug": "3.0.3",
33-
"puppeteer-core": "10.4.0"
33+
"puppeteer-core": "22.6.4"
3434
},
3535
"devDependencies": {
3636
"@types/fs-extra": "9.0.13",

export/src/app.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ router
2929
typeof width !== 'undefined' &&
3030
!Number.isNaN(height) && // accept floats
3131
!Number.isNaN(width) && // accept floats
32-
height > 0 &&
33-
width > 0
32+
Number(height) > 0 &&
33+
Number(width) > 0
3434
) {
3535
options = {
3636
...options,

export/src/handler.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import * as Sentry from '@sentry/node';
2-
import type { NowApiHandler, NowRequest, NowResponse } from '@vercel/node';
2+
import type { VercelApiHandler, VercelRequest, VercelResponse } from '@vercel/node';
33
import type { Page } from 'puppeteer-core';
44

55
import * as render from './render-serverless';
@@ -38,9 +38,9 @@ function setUpSentry() {
3838
* @returns A Vercel serverless function handler.
3939
*/
4040
export function makeExportHandler<T>(
41-
parseExportData: (request: NowRequest) => T,
42-
performExport: (response: NowResponse, page: Page, data: T) => void | Promise<void>,
43-
): NowApiHandler {
41+
parseExportData: (request: VercelRequest) => T,
42+
performExport: (response: VercelResponse, page: Page, data: T) => void | Promise<void>,
43+
): VercelApiHandler {
4444
return async function handler(request, response) {
4545
try {
4646
throwIfAcademicYearNotSet();

export/src/render-serverless.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,15 @@ async function setViewport(page: Page, options: ViewportOptions = {}) {
2323
}
2424

2525
export async function open(url: string) {
26+
const executablePath = await chromium.executablePath();
27+
28+
chromium.setGraphicsMode = false;
29+
2630
const browser = await puppeteer.launch({
2731
// devtools: !!process.env.DEVTOOLS, // TODO: Query string && NODE_ENV === 'development'?
2832
args: chromium.args,
2933
defaultViewport: chromium.defaultViewport,
30-
executablePath: await chromium.executablePath,
34+
executablePath: executablePath,
3135
headless: chromium.headless,
3236
});
3337

export/src/render.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,9 @@ async function setViewport(page: Page, options: ViewportOptions = {}) {
2525

2626
export async function launch() {
2727
const browser = await puppeteer.launch({
28+
headless: true,
2829
executablePath: config.chromeExecutable,
2930
devtools: !!process.env.DEVTOOLS,
30-
args: [
31-
'--headless',
32-
'--disable-gpu',
33-
'--disable-software-rasterizer',
34-
'--disable-dev-shm-usage',
35-
],
3631
});
3732

3833
const page = await browser.newPage();

0 commit comments

Comments
 (0)