UNPKG

@multiversx/sdk-nestjs-http

Version:
40 lines 1.71 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) { 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 = request.headers['x-request-id'] ?? (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); })); } }; exports.OriginInterceptor = OriginInterceptor; exports.OriginInterceptor = OriginInterceptor = tslib_1.__decorate([ (0, common_1.Injectable)() ], OriginInterceptor); //# sourceMappingURL=origin.interceptor.js.map