28 lines
870 B
TypeScript
28 lines
870 B
TypeScript
import { ExecutionContext } from '@nestjs/common';
|
|
import { GqlContextType, GqlExecutionContext } from '@nestjs/graphql';
|
|
|
|
// extract request from the execution context
|
|
export const getRequest = (context: ExecutionContext) => {
|
|
let request;
|
|
|
|
// if context is an http request
|
|
if (context.getType() === 'http') {
|
|
request = context.switchToHttp().getRequest();
|
|
} else if (context.getType<GqlContextType>() === 'graphql') {
|
|
// if context is a graphql request
|
|
const graphQLContext = GqlExecutionContext.create(context);
|
|
|
|
const { req, connection } = graphQLContext.getContext();
|
|
|
|
request =
|
|
connection && connection.context && connection.context.headers
|
|
? connection.context
|
|
: req;
|
|
} else if (context.getType() === 'rpc') {
|
|
// if context is a rpc request
|
|
throw new Error('Not implemented');
|
|
}
|
|
|
|
return request;
|
|
};
|