/*! * Copyright (c) 2020 Ville de Montreal. All rights reserved. * Licensed under the MIT license. * See LICENSE file in the project root for full license information. */ import { ILogger } from '@villedemontreal/auth-core'; import { Request } from 'request'; /** * plugin that will log a message before and after the execution of request, * and provide additional information such as status code, elapsed time, error... * @param logger the logger * @example * const config: request.CoreOptions = { * url: 'http://localhost:4004/secured/profile' * }; * requestLogger(new ConsoleLogger()).bind(config); * const response = await request(config); * @example * const correlator = new HttpRequestCorrelator(); * const config: request.CoreOptions = { * url: 'http://localhost:4004/secured/profile' * }; * requestCorrelator(correlator).bind(config); * requestLogger(new ConsoleLogger(() => correlator.getId())).bind(config); * const response = await request(config); * @example * const defaultConfig: request.CoreOptions = {}; * requestLogger(new ConsoleLogger()).bind(defaultConfig); * const config: request.CoreOptions = { * ...defaultConfig, * baseUrl: 'http://localhost:4004', * }; * const response = await request.get('/secured/profile', config); * @example * const config: request.CoreOptions = {}; * authenticator(session, authenticatorConfig).bind(config); * requestLogger(session.logger).bind(config); * const response = await request.get('http://localhost:4004/secured/profile', config); */ export declare function requestLogger(logger: ILogger): { bind: (target: Request | import("request").Options | import("request").CoreOptions) => void; };