From e81a118735045a40f0ab93c1bedef5b7d674f2f0 Mon Sep 17 00:00:00 2001 From: cisen Date: Sat, 6 Feb 2021 01:02:42 +0800 Subject: [PATCH] feat(proxy): support conditional options for proxy request (#1888) ...by returning an options object from the `bypass` function. --- packages/vite/src/node/server/middlewares/proxy.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/vite/src/node/server/middlewares/proxy.ts b/packages/vite/src/node/server/middlewares/proxy.ts index de72cfeb638e14..7c40f4609d0899 100644 --- a/packages/vite/src/node/server/middlewares/proxy.ts +++ b/packages/vite/src/node/server/middlewares/proxy.ts @@ -85,6 +85,7 @@ export function proxyMiddleware({ url.startsWith(context) ) { const [proxy, opts] = proxies[context] + const proxyOpitons: HttpProxy.ServerOptions = {} if (opts.bypass) { const bypassResult = opts.bypass(req, res, opts) @@ -92,6 +93,10 @@ export function proxyMiddleware({ req.url = bypassResult debug(`bypass: ${req.url} -> ${bypassResult}`) return next() + } else if (typeof bypassResult === 'object') { + Object.assign(proxyOpitons, bypassResult) + debug(`bypass: ${req.url} use modified opitions: %O`, proxyOpitons) + return next() } else if (bypassResult === false) { debug(`bypass: ${req.url} -> 404`) return res.end(404) @@ -102,7 +107,7 @@ export function proxyMiddleware({ if (opts.rewrite) { req.url = opts.rewrite(req.url!) } - proxy.web(req, res) + proxy.web(req, res, proxyOpitons) return } }