@vtex/service-filters
Version:
VTEX Service Filters SDK
30 lines (29 loc) • 1.21 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.forwardToService = exports.setRequestBody = void 0;
const co_body_1 = require("co-body");
const koa_better_http_proxy_1 = __importDefault(require("koa-better-http-proxy"));
const removeAnAndWks = (ctx) => ctx.request.path
.replace(`/${ctx.vtex.account}`, '')
.replace(`/${ctx.vtex.workspace}`, '');
async function setRequestBody(ctx, next) {
const context = ctx;
context.request.body = await co_body_1.json(ctx.req);
await next();
}
exports.setRequestBody = setRequestBody;
async function forwardToService(ctx, next) {
var _a;
const host = `http://${ctx.vtex.workspace}--${ctx.vtex.account}.${(_a = process.env.VTEX_PUBLIC_ENDPOINT) !== null && _a !== void 0 ? _a : 'myvtex.com'}`;
const forwardTo = koa_better_http_proxy_1.default(host, {
proxyReqPathResolver: removeAnAndWks,
headers: {
'Proxy-Authorization': ctx.vtex.authToken,
},
});
await forwardTo(ctx, next);
}
exports.forwardToService = forwardToService;