UNPKG

@multiversx/sdk-nestjs-http

Version:
41 lines 1.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OriginInterceptor = void 0; const tslib_1 = require("tslib"); const common_1 = require("@nestjs/common"); const rxjs_1 = require("rxjs"); const operators_1 = require("rxjs/operators"); const sdk_nestjs_common_1 = require("@multiversx/sdk-nestjs-common"); const crypto_1 = require("crypto"); let OriginInterceptor = class OriginInterceptor { intercept(context, next) { var _a; const contextType = context.getType(); if (!["http", "https"].includes(contextType)) { return next.handle(); } const apiFunction = context.getClass().name + '.' + context.getHandler().name; const request = context.switchToHttp().getRequest(); const requestId = (_a = request.headers['x-request-id']) !== null && _a !== void 0 ? _a : (0, crypto_1.randomUUID)(); sdk_nestjs_common_1.ContextTracker.assign({ origin: apiFunction, requestId }); return next .handle() .pipe((0, operators_1.tap)(() => { sdk_nestjs_common_1.ContextTracker.unassign(); if (!request.res.headersSent) { request.res.set('X-Request-Id', requestId); } }), (0, operators_1.catchError)(err => { sdk_nestjs_common_1.ContextTracker.unassign(); if (!request.res.headersSent) { request.res.set('X-Request-Id', requestId); } return (0, rxjs_1.throwError)(() => err); })); } }; OriginInterceptor = tslib_1.__decorate([ (0, common_1.Injectable)() ], OriginInterceptor); exports.OriginInterceptor = OriginInterceptor; //# sourceMappingURL=origin.interceptor.js.map