http-proxy-middleware
Advanced tools
Comparing version 1.2.0-beta.2 to 1.2.0
# Changelog | ||
## next | ||
## [v1.2.0](https://github.com/chimurai/http-proxy-middleware/releases/tag/v1.2.0) | ||
- feat(handler): response interceptor | ||
- feat(handler): response interceptor ([#520](https://github.com/chimurai/http-proxy-middleware/pull/520)) | ||
- fix(log error): handle undefined target when websocket errors ([#527](https://github.com/chimurai/http-proxy-middleware/pull/527)) | ||
## [v1.1.2](https://github.com/chimurai/http-proxy-middleware/releases/tag/v1.1.2) | ||
- fix(log error): handle optional target ([#523](https://github.com/chimurai/http-proxy-middleware/pull/523)) | ||
## [v1.1.1](https://github.com/chimurai/http-proxy-middleware/releases/tag/v1.1.1) | ||
@@ -8,0 +13,0 @@ |
@@ -25,3 +25,3 @@ "use strict"; | ||
const originalProxyRes = proxyRes; | ||
let buffer = Buffer.from('', 'utf-8'); | ||
let buffer = Buffer.from('', 'utf8'); | ||
// decompress proxy response | ||
@@ -37,3 +37,3 @@ const _proxyRes = decompress(proxyRes, proxyRes.headers['content-encoding']); | ||
// set correct content-length (with double byte character support) | ||
res.setHeader('content-length', Buffer.byteLength(interceptedBuffer, 'utf-8')); | ||
res.setHeader('content-length', Buffer.byteLength(interceptedBuffer, 'utf8')); | ||
res.write(interceptedBuffer); | ||
@@ -40,0 +40,0 @@ res.end(); |
@@ -138,8 +138,10 @@ "use strict"; | ||
}); | ||
this.logError = (err, req, res) => { | ||
const hostname = (req.headers && req.headers.host) || req.hostname || req.host; // (websocket) || (node0.10 || node 4/5) | ||
const target = this.proxyOptions.target.host || this.proxyOptions.target; | ||
const errorMessage = '[HPM] Error occurred while trying to proxy request %s from %s to %s (%s) (%s)'; | ||
this.logError = (err, req, res, target) => { | ||
var _a; | ||
const hostname = ((_a = req.headers) === null || _a === void 0 ? void 0 : _a.host) || req.hostname || req.host; // (websocket) || (node0.10 || node 4/5) | ||
const requestHref = `${hostname}${req.url}`; | ||
const targetHref = `${target === null || target === void 0 ? void 0 : target.href}`; // target is undefined when websocket errors | ||
const errorMessage = '[HPM] Error occurred while proxying request %s to %s [%s] (%s)'; | ||
const errReference = 'https://nodejs.org/api/errors.html#errors_common_system_errors'; // link to Node Common Systems Errors page | ||
this.logger.error(errorMessage, req.url, hostname, target, err.code || err, errReference); | ||
this.logger.error(errorMessage, requestHref, targetHref, err.code || err, errReference); | ||
}; | ||
@@ -146,0 +148,0 @@ this.config = config_factory_1.createConfig(context, opts); |
{ | ||
"name": "http-proxy-middleware", | ||
"version": "1.2.0-beta.2", | ||
"version": "1.2.0", | ||
"description": "The one-liner node.js proxy middleware for connect, express and browser-sync", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
# http-proxy-middleware | ||
[![Build Status](https://img.shields.io/travis/chimurai/http-proxy-middleware/master.svg?style=flat-square)](https://travis-ci.org/chimurai/http-proxy-middleware) | ||
[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/chimurai/http-proxy-middleware/Test/master?style=flat-square)](https://github.com/chimurai/http-proxy-middleware/actions?query=branch%3Amaster) | ||
[![Coveralls](https://img.shields.io/coveralls/chimurai/http-proxy-middleware.svg?style=flat-square)](https://coveralls.io/r/chimurai/http-proxy-middleware) | ||
[![dependency Status](https://img.shields.io/david/chimurai/http-proxy-middleware.svg?style=flat-square)](https://david-dm.org/chimurai/http-proxy-middleware#info=dependencies) | ||
[![dependency Status](https://snyk.io/test/npm/http-proxy-middleware/badge.svg?style=flat-square)](https://snyk.io/test/npm/http-proxy-middleware) | ||
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) | ||
[![npm](https://img.shields.io/npm/v/http-proxy-middleware?color=%23CC3534&style=flat-square)](https://www.npmjs.com/package/http-proxy-middleware) | ||
@@ -302,3 +302,3 @@ Node.js proxying made simple. Configure proxy middleware with ease for [connect](https://github.com/senchalabs/connect), [express](https://github.com/strongloop/express), [browser-sync](https://github.com/BrowserSync/browser-sync) and [many more](#compatible-servers). | ||
```javascript | ||
function onError(err, req, res) { | ||
function onError(err, req, res, target) { | ||
res.writeHead(500, { | ||
@@ -492,3 +492,3 @@ 'Content-Type': 'text/plain', | ||
With `buffer`, response manipulation is not limited to text responses (html/css/js, etc...); image manipulation will be possible too. ([example](https://github.com/chimurai/http-proxy-middleware/blob/master/response-interceptor/recipes/response-interceptor.md#manipulate-image-response)) | ||
With `buffer`, response manipulation is not limited to text responses (html/css/js, etc...); image manipulation will be possible too. ([example](https://github.com/chimurai/http-proxy-middleware/blob/master/recipes/response-interceptor.md#manipulate-image-response)) | ||
@@ -518,3 +518,3 @@ NOTE: `responseInterceptor` disables streaming of target's response. | ||
Check out [interception recipes](https://github.com/chimurai/http-proxy-middleware/blob/master/response-interceptor/recipes/response-interceptor.md#readme) for more examples. | ||
Check out [interception recipes](https://github.com/chimurai/http-proxy-middleware/blob/master/recipes/response-interceptor.md#readme) for more examples. | ||
@@ -529,3 +529,3 @@ ## Working examples | ||
- WebSocket ([example source](https://github.com/chimurai/http-proxy-middleware/tree/master/examples/websocket/index.js)) | ||
- Response Manipulation ([example source](https://github.com/chimurai/http-proxy-middleware/blob/master/response-interceptor/examples/response-interceptor/index.js)) | ||
- Response Manipulation ([example source](https://github.com/chimurai/http-proxy-middleware/blob/master/examples/response-interceptor/index.js)) | ||
@@ -532,0 +532,0 @@ ## Recipes |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
72825
913
0