@sentry/node
Version:
Sentry Node SDK using OpenTelemetry for performance instrumentation
42 lines (37 loc) • 1.53 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const core$1 = require('@opentelemetry/core');
const core = require('@sentry/core');
const commonjs = require('./commonjs.js');
const createMissingInstrumentationContext = require('./createMissingInstrumentationContext.js');
/**
* Checks and warns if a framework isn't wrapped by opentelemetry.
*/
function ensureIsWrapped(
maybeWrappedFunction,
name,
) {
const clientOptions = core.getClient()?.getOptions();
if (
!clientOptions?.disableInstrumentationWarnings &&
!core$1.isWrapped(maybeWrappedFunction) &&
core.isEnabled() &&
core.hasSpansEnabled(clientOptions)
) {
core.consoleSandbox(() => {
if (commonjs.isCjs()) {
// eslint-disable-next-line no-console
console.warn(
`[Sentry] ${name} is not instrumented. This is likely because you required/imported ${name} before calling \`Sentry.init()\`.`,
);
} else {
// eslint-disable-next-line no-console
console.warn(
`[Sentry] ${name} is not instrumented. Please make sure to initialize Sentry in a separate file that you \`--import\` when running node, see: https://docs.sentry.io/platforms/javascript/guides/${name}/install/esm/.`,
);
}
});
core.getGlobalScope().setContext('missing_instrumentation', createMissingInstrumentationContext.createMissingInstrumentationContext(name));
}
}
exports.ensureIsWrapped = ensureIsWrapped;
//# sourceMappingURL=ensureIsWrapped.js.map