aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/middlewares/async.ts
diff options
context:
space:
mode:
Diffstat (limited to 'server/middlewares/async.ts')
-rw-r--r--server/middlewares/async.ts5
1 files changed, 3 insertions, 2 deletions
diff --git a/server/middlewares/async.ts b/server/middlewares/async.ts
index f770bc120..25b22596c 100644
--- a/server/middlewares/async.ts
+++ b/server/middlewares/async.ts
@@ -1,11 +1,12 @@
1import { eachSeries } from 'async' 1import { eachSeries } from 'async'
2import { NextFunction, Request, RequestHandler, Response } from 'express' 2import { NextFunction, Request, RequestHandler, Response } from 'express'
3import { retryTransactionWrapper } from '../helpers/database-utils' 3import { retryTransactionWrapper } from '../helpers/database-utils'
4import { ValidationChain } from 'express-validator'
4 5
5// Syntactic sugar to avoid try/catch in express controllers 6// Syntactic sugar to avoid try/catch in express controllers
6// Thanks: https://medium.com/@Abazhenov/using-async-await-in-express-with-node-8-b8af872c0016 7// Thanks: https://medium.com/@Abazhenov/using-async-await-in-express-with-node-8-b8af872c0016
7 8
8export type RequestPromiseHandler = (req: Request, res: Response, next: NextFunction) => Promise<any> 9export type RequestPromiseHandler = ValidationChain | ((req: Request, res: Response, next: NextFunction) => Promise<any>)
9 10
10function asyncMiddleware (fun: RequestPromiseHandler | RequestPromiseHandler[]) { 11function asyncMiddleware (fun: RequestPromiseHandler | RequestPromiseHandler[]) {
11 return (req: Request, res: Response, next: NextFunction) => { 12 return (req: Request, res: Response, next: NextFunction) => {
@@ -21,7 +22,7 @@ function asyncMiddleware (fun: RequestPromiseHandler | RequestPromiseHandler[])
21 } 22 }
22} 23}
23 24
24function asyncRetryTransactionMiddleware (fun: RequestPromiseHandler) { 25function asyncRetryTransactionMiddleware (fun: (req: Request, res: Response, next: NextFunction) => Promise<any>) {
25 return (req: Request, res: Response, next: NextFunction) => { 26 return (req: Request, res: Response, next: NextFunction) => {
26 return Promise.resolve( 27 return Promise.resolve(
27 retryTransactionWrapper(fun, req, res, next) 28 retryTransactionWrapper(fun, req, res, next)