@rxts/koa-proxy
Version:
`http-proxy` wrapper as Koa middleware
24 lines • 1.04 kB
JavaScript
import { __rest } from "tslib";
import httpProxy from 'http-proxy';
export var proxy = function (_a) {
if (_a === void 0) { _a = {}; }
var _b = _a.listeners, listeners = _b === void 0 ? {} : _b, override = _a.override, skipError = _a.skipError, options = __rest(_a, ["listeners", "override", "skipError"]);
var proxy = httpProxy.createProxyServer(options);
Object.keys(listeners).forEach(function (event) {
var listener = listeners[event];
if (listener) {
// @ts-ignore
proxy.on(event, listener);
}
});
return function (ctx, next) {
return new Promise(function (resolve, reject) {
proxy.web(ctx.req, ctx.res, typeof override === 'function' ? override(ctx) : undefined, function (err) {
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
return err ? (skipError ? resolve(next()) : reject(err)) : resolve();
});
});
};
};
export default proxy;
//# sourceMappingURL=index.js.map