From 4ddf66ce54a1bd674e571f95d91cd31d7efff342 Mon Sep 17 00:00:00 2001 From: s-ol Date: Thu, 13 Jan 2022 14:27:26 +0100 Subject: initial commit - read-only DiscDag integration --- async.ts | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 async.ts (limited to 'async.ts') diff --git a/async.ts b/async.ts new file mode 100644 index 0000000..c88aceb --- /dev/null +++ b/async.ts @@ -0,0 +1,26 @@ +import type { Request, Response, NextFunction, RequestHandler } from "express"; +import type { ParamsDictionary, Query } from "express-serve-static-core"; + +export interface AsyncRequestHandler< + P = ParamsDictionary, + ResBody = any, + ReqBody = any, + ReqQuery = Query, + Locals extends Record = Record +> { + ( + req: Request, + res: Response, + next: NextFunction, + ): Promise; +} + +export const wrap = < + P = ParamsDictionary, + ResBody = any, + ReqBody = any, + ReqQuery = Query, + Locals extends Record = Record +>(handler: AsyncRequestHandler): RequestHandler => { + return (req, res, next) => handler(req, res, next).catch((err) => next(err)); +}; -- cgit v1.2.3