@airbrake/node
Version:
Official Airbrake notifier for Node.js
33 lines • 989 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.wrapRequest = exports.patch = void 0;
var SPAN_NAME = 'http';
function patch(http, airbrake) {
if (http.request) {
http.request = wrapRequest(http.request, airbrake);
}
if (http.get) {
http.get = wrapRequest(http.get, airbrake);
}
}
exports.patch = patch;
function wrapRequest(origFn, airbrake) {
return function abRequest() {
var metric = airbrake.scope().routeMetric();
metric.startSpan(SPAN_NAME);
var req = origFn.apply(this, arguments);
if (!metric.isRecording()) {
return req;
}
var origEmit = req.emit;
req.emit = function (type, _res) {
if (type === 'response') {
metric.endSpan(SPAN_NAME);
}
return origEmit.apply(this, arguments);
};
return req;
};
}
exports.wrapRequest = wrapRequest;
//# sourceMappingURL=http.js.map