@sentry/core
Version:
Base implementation for all Sentry JavaScript SDKs
39 lines (35 loc) • 1.42 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const isBrowser = require('../../utils/isBrowser.js');
const hasSpanStreamingEnabled = require('./hasSpanStreamingEnabled.js');
const spanJsonToStreamedSpan = require('./spanJsonToStreamedSpan.js');
function extractGenAiSpansFromEvent(event, client) {
if (event.type !== "transaction" || !event.spans?.length || !event.sdkProcessingMetadata?.hasGenAiSpans || !client.getOptions().streamGenAiSpans || hasSpanStreamingEnabled.hasSpanStreamingEnabled(client)) {
return void 0;
}
const genAiSpans = [];
const remainingSpans = [];
for (const span of event.spans) {
if (span.op?.startsWith("gen_ai.")) {
genAiSpans.push(spanJsonToStreamedSpan.spanJsonToSerializedStreamedSpan(span));
} else {
remainingSpans.push(span);
}
}
if (genAiSpans.length === 0) {
return void 0;
}
event.spans = remainingSpans;
const inferSetting = client.getOptions().sendDefaultPii ? "auto" : "never";
return [
{ type: "span", item_count: genAiSpans.length, content_type: "application/vnd.sentry.items.span.v2+json" },
{
version: 2,
...isBrowser.isBrowser() && {
ingest_settings: { infer_ip: inferSetting, infer_user_agent: inferSetting }
},
items: genAiSpans
}
];
}
exports.extractGenAiSpansFromEvent = extractGenAiSpansFromEvent;
//# sourceMappingURL=extractGenAiSpans.js.map