| 1234567891011121314151617181920212223 |
- const { Transform } = require('stream');
- class HeaderHostTransformer extends Transform {
- constructor(opts = {}) {
- super(opts);
- this.host = opts.host || 'localhost';
- this.replaced = false;
- }
- _transform(data, encoding, callback) {
- callback(
- null,
- this.replaced // after replacing the first instance of the Host header we just become a regular passthrough
- ? data
- : data.toString().replace(/(\r\n[Hh]ost: )\S+/, (match, $1) => {
- this.replaced = true;
- return $1 + this.host;
- })
- );
- }
- }
- module.exports = HeaderHostTransformer;
|