azurite
Version:
An open source Azure Storage API compatible server
38 lines • 1.48 kB
JavaScript
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
;