webserv
Version:
a quick, flexible, fully typed development server
46 lines • 2.22 kB
JavaScript
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
(function (factory) {
if (typeof module === "object" && typeof module.exports === "object") {
var v = factory(require, exports);
if (v !== undefined) module.exports = v;
}
else if (typeof define === "function" && define.amd) {
define(["require", "exports", "http-proxy", "../log"], factory);
}
})(function (require, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const http_proxy_1 = require("http-proxy");
const log_1 = require("../log");
function defaultErrorHandler(err) {
log_1.log.error(`Proxy failed: ${err.message}`);
}
function createProxy(options) {
const { onError = defaultErrorHandler, onProxyResponse, onProxyRequest, onWebsocketRequest } = options, config = __rest(options, ["onError", "onProxyResponse", "onProxyRequest", "onWebsocketRequest"]);
const proxy = http_proxy_1.createProxyServer(config);
proxy.on('error', onError);
proxy.on('proxyRes', (proxyResponse, request, response) => {
onProxyResponse && onProxyResponse(proxyResponse, request, response);
});
proxy.on('proxyReq', (proxyRequest, request, response, options) => {
onProxyRequest && onProxyRequest(proxyRequest, request, response, options);
});
proxy.on('proxyReqWs', (proxyRequest, request, socket, options, head) => {
log_1.log.debug(`WebSocket request ${head}`);
onWebsocketRequest && onWebsocketRequest(proxyRequest, request, socket, options, head);
});
return proxy;
}
exports.createProxy = createProxy;
});
//# sourceMappingURL=createProxy.js.map