From 13bd2436335448c3896ee9a0f93a7daaf476f105 Mon Sep 17 00:00:00 2001 From: Levi Bostian Date: Fri, 19 Jul 2019 11:27:49 -0500 Subject: [PATCH] Add types for connect-sequence module (#36963) --- .../connect-sequence-tests.ts | 24 +++++++++++++++++++ types/connect-sequence/index.d.ts | 19 +++++++++++++++ types/connect-sequence/tsconfig.json | 24 +++++++++++++++++++ types/connect-sequence/tslint.json | 3 +++ 4 files changed, 70 insertions(+) create mode 100644 types/connect-sequence/connect-sequence-tests.ts create mode 100644 types/connect-sequence/index.d.ts create mode 100644 types/connect-sequence/tsconfig.json create mode 100644 types/connect-sequence/tslint.json diff --git a/types/connect-sequence/connect-sequence-tests.ts b/types/connect-sequence/connect-sequence-tests.ts new file mode 100644 index 0000000000..300ba2161a --- /dev/null +++ b/types/connect-sequence/connect-sequence-tests.ts @@ -0,0 +1,24 @@ +import ConnectSequence from 'connect-sequence'; +import express, { RequestHandler } from 'express'; + +const appendMiddleware: RequestHandler = (req, res, next) => {}; + +const appendListMiddleware1: RequestHandler = (req, res, next) => {}; +const appendListMiddleware2: RequestHandler = (req, res, next) => {}; + +const appendIfMiddleware: RequestHandler = (req, res, next) => {}; + +const appendListIfMiddleware1: RequestHandler = (req, res, next) => {}; +const appendListIfMiddleware2: RequestHandler = (req, res, next) => {}; + +const app = express(); + +app.route('/api/products/:productId').get((req, res, next) => { + const seq = new ConnectSequence(req, res, next); + + seq.append(appendMiddleware) + .appendList([appendListMiddleware1, appendListMiddleware2]) + .appendIf(true, appendIfMiddleware) + .appendListIf(false, [appendListIfMiddleware1, appendListIfMiddleware2]) + .run(); +}); diff --git a/types/connect-sequence/index.d.ts b/types/connect-sequence/index.d.ts new file mode 100644 index 0000000000..3d163851cd --- /dev/null +++ b/types/connect-sequence/index.d.ts @@ -0,0 +1,19 @@ +// Type definitions for connect-sequence 2.1 +// Project: https://github.com/sirap-group/connect-sequence +// Definitions by: Levi Bostian +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.7 + +import { Request, Response, NextFunction, RequestHandler } from 'express'; + +declare class ConnectSequence { + constructor(req: Request, res: Response, next: NextFunction); + + append(...middleware: RequestHandler[]): this; + appendList(middleware: RequestHandler[]): this; + appendIf(condition: boolean, middleware: RequestHandler): this; + appendListIf(condition: boolean, middleware: RequestHandler[]): this; + run(): void; +} + +export = ConnectSequence; diff --git a/types/connect-sequence/tsconfig.json b/types/connect-sequence/tsconfig.json new file mode 100644 index 0000000000..5e98f3baa7 --- /dev/null +++ b/types/connect-sequence/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true, + "esModuleInterop": true + }, + "files": [ + "index.d.ts", + "connect-sequence-tests.ts" + ] +} \ No newline at end of file diff --git a/types/connect-sequence/tslint.json b/types/connect-sequence/tslint.json new file mode 100644 index 0000000000..e60c15844f --- /dev/null +++ b/types/connect-sequence/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +} \ No newline at end of file