"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const stream_1 = require("stream");
class HeaderHostTransformer extends stream_1.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;
            }));
    }
}
exports.default = HeaderHostTransformer;
