From dd7d86df5397c277839c3fe605f1ec89be7f2075 Mon Sep 17 00:00:00 2001 From: Daniel Schopf Date: Wed, 9 Jan 2019 16:55:40 +0100 Subject: [PATCH] added userResHeaderDecorator --- types/express-http-proxy/express-http-proxy-tests.ts | 8 ++++++++ types/express-http-proxy/index.d.ts | 7 +++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/types/express-http-proxy/express-http-proxy-tests.ts b/types/express-http-proxy/express-http-proxy-tests.ts index 16e03cc974..56156369cc 100644 --- a/types/express-http-proxy/express-http-proxy-tests.ts +++ b/types/express-http-proxy/express-http-proxy-tests.ts @@ -16,5 +16,13 @@ proxy('www.google.com', { console.log(proxyReqOpts.headers, proxyReqOpts.method); console.log(srcReq.url, srcReq.cookies); return proxyReqOpts; + }, + userResHeaderDecorator(headers, userReq, userRes, proxyReq, proxyRes) { + console.log(userReq.url, userRes.statusCode); + console.log(proxyReq.url, proxyRes.statusCode); + if (headers["content-type"] === "image/png") { + headers["x-custom-header"] = "additional-info"; + } + return headers; } }); diff --git a/types/express-http-proxy/index.d.ts b/types/express-http-proxy/index.d.ts index 031be01485..3a74bef6db 100644 --- a/types/express-http-proxy/index.d.ts +++ b/types/express-http-proxy/index.d.ts @@ -1,15 +1,18 @@ // Type definitions for express-http-proxy 1.5 // Project: https://github.com/villadora/express-http-proxy#readme -// Definitions by: ulrichb +// Definitions by: ulrichb +// Daniel Schopf // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.2 import { RequestHandler, Request } from "express"; -import { RequestOptions } from "http"; +import { RequestOptions, IncomingHttpHeaders, OutgoingHttpHeaders } from "http"; +import { Response } from "express-serve-static-core"; interface ProxyOptions { proxyReqPathResolver?: (req: Request) => string; proxyReqOptDecorator?: (proxyReqOpts: RequestOptions, srcReq: Request) => RequestOptions; + userResHeaderDecorator?: (headers: IncomingHttpHeaders, userReq: Request, userRes: Response, proxyReq: Request, proxyRes: Response) => OutgoingHttpHeaders; } declare function proxy(host: string, options?: ProxyOptions): RequestHandler;