From a807e4e41666700f935ca69ab985d4ffbf79f88c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Oudemans?= <31566929+remyoudemans@users.noreply.github.com> Date: Thu, 2 May 2019 02:21:57 +0200 Subject: [PATCH] Add express-async-wrap (#35030) * adds types for express-async-wrap * Adds express-async-wrap properly * Adds typescript version to express-async-wrap * removes unnecessary generics * removes unnecessary comment * fix: now uses export default --- .../express-async-wrap-tests.ts | 17 ++++++++++++++ types/express-async-wrap/index.d.ts | 18 +++++++++++++++ types/express-async-wrap/tsconfig.json | 23 +++++++++++++++++++ types/express-async-wrap/tslint.json | 1 + 4 files changed, 59 insertions(+) create mode 100644 types/express-async-wrap/express-async-wrap-tests.ts create mode 100644 types/express-async-wrap/index.d.ts create mode 100644 types/express-async-wrap/tsconfig.json create mode 100644 types/express-async-wrap/tslint.json diff --git a/types/express-async-wrap/express-async-wrap-tests.ts b/types/express-async-wrap/express-async-wrap-tests.ts new file mode 100644 index 0000000000..e574f09cd6 --- /dev/null +++ b/types/express-async-wrap/express-async-wrap-tests.ts @@ -0,0 +1,17 @@ +import asyncWrap from 'express-async-wrap'; +import express = require('express'); + +const app = express(); + +const promise = new Promise(resolve => { + setTimeout(() => { + resolve("Success"); + }, 250); +}); + +const asyncHandler = async (_: express.Request, res: express.Response) => { + await promise; + res.send('promise awaited'); +}; + +app.get('/', asyncWrap(asyncHandler)); diff --git a/types/express-async-wrap/index.d.ts b/types/express-async-wrap/index.d.ts new file mode 100644 index 0000000000..7bee0cd874 --- /dev/null +++ b/types/express-async-wrap/index.d.ts @@ -0,0 +1,18 @@ +// Type definitions for express-async-wrap 1.0 +// Project: https://github.com/Greenfields/express-async-wrap#readme +// Definitions by: Remy Oudemans +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.7 + +import { NextFunction } from 'connect'; +import { Response, RequestHandler, ErrorRequestHandler, Request } from 'express-serve-static-core'; + +declare function asyncWrap( + handler: (req: Request, res: Response, next: NextFunction) => Promise +): RequestHandler; + +declare function asyncWrap( + handler: (err: any, req: Request, res: Response, next: NextFunction) => Promise, +): ErrorRequestHandler; + +export default asyncWrap; diff --git a/types/express-async-wrap/tsconfig.json b/types/express-async-wrap/tsconfig.json new file mode 100644 index 0000000000..3cc017546c --- /dev/null +++ b/types/express-async-wrap/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "express-async-wrap-tests.ts" + ] +} diff --git a/types/express-async-wrap/tslint.json b/types/express-async-wrap/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/express-async-wrap/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }