@graphql-hive/plugin-opentelemetry
Version:
44 lines (40 loc) • 1.29 kB
JavaScript
;
var api = require('@opentelemetry/api');
const defaultDelegate = {
getActiveContext: () => api.context.active(),
getExecutionRequestContext: () => api.context.active(),
getHttpContext: () => api.context.active(),
getOperationContext: () => api.context.active(),
tracer: void 0
};
let delegate = defaultDelegate;
const hive = {
getActiveContext: (payload) => delegate.getActiveContext(payload),
getExecutionRequestContext: (executionRequest) => delegate.getExecutionRequestContext(executionRequest),
getHttpContext: (request) => delegate.getHttpContext(request),
getOperationContext: (context2) => delegate.getOperationContext(context2),
get tracer() {
return delegate.tracer;
},
setPluginUtils: (utils, log) => {
if (delegate == defaultDelegate) {
delegate = utils;
return true;
} else {
log?.warn(
"OpenTelemetry plugin's utils are already registered. This is a no-op"
);
return false;
}
},
disable() {
delegate = defaultDelegate;
}
};
exports.hive = hive;
Object.keys(api).forEach(function (k) {
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
enumerable: true,
get: function () { return api[k]; }
});
});