From d13efb8986310ea47d1d1a2f9090b46cdad82668 Mon Sep 17 00:00:00 2001 From: "@zimeg" Date: Wed, 19 Jun 2024 11:29:54 -0700 Subject: [PATCH 1/2] fix: return a void promise from middleware parsing --- src/receivers/ExpressReceiver.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/receivers/ExpressReceiver.ts b/src/receivers/ExpressReceiver.ts index 56865fe62..e0c3122d3 100644 --- a/src/receivers/ExpressReceiver.ts +++ b/src/receivers/ExpressReceiver.ts @@ -443,7 +443,7 @@ function buildVerificationBodyParserMiddleware( logger: Logger, signingSecret: string | (() => PromiseLike), ): RequestHandler { - return async (req, res, next) => { + return async (req, res, next): Promise => { let stringBody: string; // On some environments like GCP (Google Cloud Platform), // req.body can be pre-parsed and be passed as req.rawBody here @@ -470,15 +470,17 @@ function buildVerificationBodyParserMiddleware( if (error) { if (error instanceof ReceiverAuthenticityError) { logError(logger, 'Request verification failed', error); - return res.status(401).send(); + res.status(401).send(); + return; } logError(logger, 'Parsing request body failed', error); - return res.status(400).send(); + res.status(400).send(); + return; } } - return next(); + next(); }; } @@ -545,7 +547,7 @@ export function verifySignatureAndParseBody( } export function buildBodyParserMiddleware(logger: Logger): RequestHandler { - return async (req, res, next) => { + return async (req, res, next): Promise => { let stringBody: string; // On some environments like GCP (Google Cloud Platform), // req.body can be pre-parsed and be passed as req.rawBody here @@ -561,10 +563,11 @@ export function buildBodyParserMiddleware(logger: Logger): RequestHandler { } catch (error) { if (error) { logError(logger, 'Parsing request body failed', error); - return res.status(400).send(); + res.status(400).send(); + return; } } - return next(); + next(); }; } From 03e332167920b0a8674b28d6d22c3f79e3d069a4 Mon Sep 17 00:00:00 2001 From: "@zimeg" Date: Wed, 19 Jun 2024 11:30:13 -0700 Subject: [PATCH 2/2] style: format indentation --- src/receivers/ExpressReceiver.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/receivers/ExpressReceiver.ts b/src/receivers/ExpressReceiver.ts index e0c3122d3..b6618beb3 100644 --- a/src/receivers/ExpressReceiver.ts +++ b/src/receivers/ExpressReceiver.ts @@ -221,9 +221,9 @@ export default class ExpressReceiver implements Receiver { if ( clientId !== undefined && clientSecret !== undefined && - (installerOptions.stateVerification === false || // state store not needed - stateSecret !== undefined || - installerOptions.stateStore !== undefined) // user provided state store + (installerOptions.stateVerification === false || // state store not needed + stateSecret !== undefined || + installerOptions.stateStore !== undefined) // user provided state store ) { this.installer = new InstallProvider({ clientId, @@ -355,8 +355,8 @@ export default class ExpressReceiver implements Receiver { serverOptions: ServerOptions | HTTPSServerOptions = {}, ): Promise { let createServerFn: - typeof createServer | - typeof createHttpsServer = createServer; + typeof createServer | + typeof createHttpsServer = createServer; // Look for HTTPS-specific serverOptions to determine which factory function to use if (Object.keys(serverOptions).filter((k) => httpsOptionKeys.includes(k)).length > 0) {