UNPKG

azurite

Version:

An open source Azure Storage API compatible server

38 lines 1.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const Telemetry_1 = require("../../common/Telemetry"); const Context_1 = tslib_1.__importDefault(require("../generated/Context")); const ExpressRequestAdapter_1 = tslib_1.__importDefault(require("../generated/ExpressRequestAdapter")); const ExpressResponseAdapter_1 = tslib_1.__importDefault(require("../generated/ExpressResponseAdapter")); /** * TelemetryMiddleware is used to send telemetry for requests. * * @export * @param {Context} context * @param {NextFunction} next An express middleware next callback */ function telemetryMiddleware(context, next) { Telemetry_1.AzuriteTelemetryClient.TraceRequest(context); next(); } class TelemetryMiddlewareFactory { constructor(contextPath = "default_context") { this.contextPath = contextPath; } /** * TelemetryMiddleware is used to send telemetry for requests. * * @returns {RequestHandler} * @memberof MiddlewareFactory */ createTelemetryMiddleware() { return (req, res, next) => { const request = new ExpressRequestAdapter_1.default(req); const response = new ExpressResponseAdapter_1.default(res); telemetryMiddleware(new Context_1.default(res.locals, this.contextPath, request, response), next); }; } } exports.default = TelemetryMiddlewareFactory; //# sourceMappingURL=telemetry.middleware.js.map