UNPKG

@nestjs-mod/common

Version:

A collection of utilities for unifying NestJS applications and modules

74 lines 3.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Request = void 0; exports.getRequestFromExecutionContext = getRequestFromExecutionContext; const common_1 = require("@nestjs/common"); const prepare_headers_1 = require("./prepare-headers"); function getRequestFromExecutionContext(ctx) { // eslint-disable-next-line @typescript-eslint/no-explicit-any let req; try { const contextType = ctx.getType(); switch (contextType) { case 'rpc': req = { ...(ctx.switchToRpc ? ctx.switchToRpc().getContext() : {}), headers: { // nats ...(ctx.switchToRpc && ctx.switchToRpc().getContext && ctx.switchToRpc().getContext().getHeaders ? ctx.switchToRpc().getContext().getHeaders() : {}), // mqtt ...(ctx.switchToRpc && ctx.switchToRpc().getContext && ctx.switchToRpc().getContext().getPacket && ctx.switchToRpc().getContext().getPacket().properties ? ctx.switchToRpc().getContext().getPacket().properties : {}), // rmq ...(ctx.switchToRpc && ctx.switchToRpc().getContext && ctx.switchToRpc().getContext().getMessage && ctx.switchToRpc().getContext().getMessage().properties?.headers ? ctx.switchToRpc().getContext().getMessage().properties.headers : {}), // kafka ...(ctx.switchToRpc && ctx.switchToRpc().getContext && ctx.switchToRpc().getContext().getMessage && ctx.switchToRpc().getContext().getMessage().headers ? ctx.switchToRpc().getContext().getMessage().headers : {}), }, }; break; case 'http': req = ctx.switchToHttp().getRequest(); break; case 'graphql': [, , req] = ctx.getArgs(); break; case 'ws': req = ctx.switchToWs().getClient(); break; default: req = ctx; break; } } catch (err) { req = ctx; } if (req.headers) { req.headers = (0, prepare_headers_1.prepareHeaders)(req.headers); } const result = req?.connection?.parser?.incoming || req?.req?.extra?.request || req?.req || req; if (result.headers) { result.headers = (0, prepare_headers_1.prepareHeaders)(result.headers); } return result; } exports.Request = (0, common_1.createParamDecorator)((data, ctx) => { return getRequestFromExecutionContext(ctx); }); //# sourceMappingURL=get-request-from-execution-context.js.map