import morgan, { StreamOptions } from 'morgan';
import logger from '../utils/winston.logger';

const stream: StreamOptions = {
  // Use the http severity
  write: (message) => logger.http(message.trim()),
};

const skip = () => {
  const env = process.env.NODE_ENV || 'development';
  return env !== 'development';
};

const morganMiddleware = morgan(
  ':remote-addr :method :url :status - :response-time ms',
  { stream, skip },
);

export default morganMiddleware;
