21 lines
546 B
TypeScript
21 lines
546 B
TypeScript
import morgan, { StreamOptions } from 'morgan';
|
|
import { Request } from 'express';
|
|
import logger from './logger';
|
|
|
|
const stream: StreamOptions = {
|
|
write: (message) => logger.http(message.substring(0, message.lastIndexOf("\n")))
|
|
};
|
|
|
|
const registerGraphQLToken = () => {
|
|
morgan.token("graphql-query", (req: Request) => `GraphQL ${req.body.query}`);
|
|
};
|
|
|
|
registerGraphQLToken();
|
|
|
|
const morganMiddleware = morgan(
|
|
":method :url :status :res[content-length] - :response-time ms\n:graphql-query",
|
|
{ stream }
|
|
);
|
|
|
|
export default morganMiddleware;
|