From 4f2070897138b7f9f837ac7e63d94e7b925b3203 Mon Sep 17 00:00:00 2001 From: Siddarth Date: Mon, 27 Jul 2020 20:52:22 +0530 Subject: [PATCH] fix(server): set content-type before sending response --- src/server/server.ts | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/server/server.ts b/src/server/server.ts index fc39c6c..6a6e50d 100644 --- a/src/server/server.ts +++ b/src/server/server.ts @@ -152,8 +152,8 @@ export class AuthlessServer { } let responseFormat: URLParams['responseFormat'] = 'json' - if(urlParams.responseFormat === 'png') { - responseFormat = urlParams.responseFormat + if(urlParams?.responseFormat === 'png') { + responseFormat = urlParams?.responseFormat } // let service handle the page const authlessResponse = await selectedDomainPath.pageHandler( @@ -165,22 +165,25 @@ export class AuthlessServer { ) if (responseFormat === 'json') { - expressResponse.set('Content-Type', 'application/json; charset=utf-8') - return expressResponse + expressResponse .status(200) + .set('Content-Type', 'application/json; charset=utf-8') .send({ meta: authlessResponse.meta, page: authlessResponse.page, main: authlessResponse.main, xhrs: authlessResponse.xhrs, }) - .set('Content-Type', 'text/html') .end() - } - expressResponse.set('Content-Type', 'text/html') - if (urlParams?.responseFormat === 'png') { + } else if (responseFormat === 'png') { expressResponse + .status(200) + .set('Content-Type', 'image/png') .end(await page.screenshot({fullPage: true}), 'binary') + } else { + expressResponse + .status(501) + .end('Can only handle responseFormat of type json or png') } await page.close() }