UNPKG

@rxts/koa-proxy

Version:

`http-proxy` wrapper as Koa middleware

24 lines 1.04 kB
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