Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

feat(legacyCreateProxyMiddleware): adapter with v2 behaviour #754

Merged
merged 5 commits into from
Apr 18, 2022

Conversation

chimurai
Copy link
Owner

@chimurai chimurai commented Apr 17, 2022

Description

  • Add legacyCreateProxyMiddleware() to use v3 with v2 behaviour.
  • User's onError and on.error handler replaces default error handler.
  • MIGRATION.md

Motivation and Context

V3 introduces some breaking changes:
https://github.com/chimurai/http-proxy-middleware/milestone/2?closed=1

Allow users to upgrade to v3 with minimal changes.
After upgrading you can migrate deprecated functionality at your own pace.

How has this been tested?

webpack/webpack-dev-server@eea50f3 with http-proxy-middleware-v3.patch:

diff --git a/lib/Server.js b/lib/Server.js
index 9f374ba..c976f7c 100644
--- a/lib/Server.js
+++ b/lib/Server.js
@@ -31,7 +31,7 @@ const schema = require("./options.json");
 /** @typedef {import("bonjour-service").Bonjour} Bonjour */
 /** @typedef {import("bonjour-service").Service} BonjourOptions */
 /** @typedef {import("http-proxy-middleware").RequestHandler} RequestHandler */
-/** @typedef {import("http-proxy-middleware").Options} HttpProxyMiddlewareOptions */
+/** @typedef {import("http-proxy-middleware").LegacyOptions} HttpProxyMiddlewareOptions */
 /** @typedef {import("http-proxy-middleware").Filter} HttpProxyMiddlewareOptionsFilter */
 /** @typedef {import("serve-index").Options} ServeIndexOptions */
 /** @typedef {import("serve-static").ServeStaticOptions} ServeStaticOptions */
@@ -2120,7 +2120,7 @@ class Server {
     });
 
     if (this.options.proxy) {
-      const { createProxyMiddleware } = require("http-proxy-middleware");
+      const { legacyCreateProxyMiddleware: createProxyMiddleware } = require("http-proxy-middleware");
 
       /**
        * @param {ProxyConfigArrayItem} proxyConfig
diff --git a/test/e2e/allowed-hosts.test.js b/test/e2e/allowed-hosts.test.js
index aeb5b7a..8550be4 100644
--- a/test/e2e/allowed-hosts.test.js
+++ b/test/e2e/allowed-hosts.test.js
@@ -2,7 +2,7 @@
 
 const express = require("express");
 const webpack = require("webpack");
-const { createProxyMiddleware } = require("http-proxy-middleware");
+const { legacyCreateProxyMiddleware: createProxyMiddleware } = require("http-proxy-middleware");
 const Server = require("../../lib/Server");
 const config = require("../fixtures/client-config/webpack.config");
 const runBrowser = require("../helpers/run-browser");
diff --git a/test/e2e/web-socket-server-url.test.js b/test/e2e/web-socket-server-url.test.js
index a83f3d3..63d8392 100644
--- a/test/e2e/web-socket-server-url.test.js
+++ b/test/e2e/web-socket-server-url.test.js
@@ -2,7 +2,7 @@
 
 const express = require("express");
 const webpack = require("webpack");
-const { createProxyMiddleware } = require("http-proxy-middleware");
+const { legacyCreateProxyMiddleware: createProxyMiddleware } = require("http-proxy-middleware");
 const Server = require("../../lib/Server");
 const config = require("../fixtures/client-config/webpack.config");
 const runBrowser = require("../helpers/run-browser");

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.

@chimurai chimurai added this to the v3.0.0 milestone Apr 17, 2022
@chimurai chimurai changed the title feat(legacyCreateProxyMiddleware): adapter with legacy behaviour feat(legacyCreateProxyMiddleware): adapter with v2 behaviour Apr 17, 2022
@coveralls
Copy link

coveralls commented Apr 17, 2022

Coverage Status

Coverage increased (+0.3%) to 97.82% when pulling 4dc3e1d on legacy-adaptor into 397aed3 on v3.

@chimurai chimurai force-pushed the legacy-adaptor branch 2 times, most recently from 1dc79c5 to f996fe5 Compare April 17, 2022 21:04
@chimurai chimurai force-pushed the legacy-adaptor branch 2 times, most recently from 005682c to ea4187b Compare April 18, 2022 17:10
@chimurai chimurai merged commit cdfe934 into v3 Apr 18, 2022
@chimurai chimurai deleted the legacy-adaptor branch April 18, 2022 18:42
chimurai added a commit that referenced this pull request Apr 22, 2022
* fix(error event): user error event handler replaces default error response handler

* feat(legacyCreateProxyMiddleware): adapter with legacy behavior

* test(on.error): test custom error handler

* chore(typescript): deprecate LegacyOptions

* docs: minor doc improvements
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants