diff options
Diffstat (limited to 'shared/logger/node_modules/@sentry/utils/esm/tracing.js')
| -rw-r--r-- | shared/logger/node_modules/@sentry/utils/esm/tracing.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/shared/logger/node_modules/@sentry/utils/esm/tracing.js b/shared/logger/node_modules/@sentry/utils/esm/tracing.js new file mode 100644 index 0000000..546507c --- /dev/null +++ b/shared/logger/node_modules/@sentry/utils/esm/tracing.js @@ -0,0 +1,39 @@ +const TRACEPARENT_REGEXP = new RegExp( + '^[ \\t]*' + // whitespace + '([0-9a-f]{32})?' + // trace_id + '-?([0-9a-f]{16})?' + // span_id + '-?([01])?' + // sampled + '[ \\t]*$', // whitespace +); + +/** + * Extract transaction context data from a `sentry-trace` header. + * + * @param traceparent Traceparent string + * + * @returns Object containing data from the header, or undefined if traceparent string is malformed + */ +function extractTraceparentData(traceparent) { + const matches = traceparent.match(TRACEPARENT_REGEXP); + + if (!traceparent || !matches) { + // empty string or no matches is invalid traceparent data + return undefined; + } + + let parentSampled; + if (matches[3] === '1') { + parentSampled = true; + } else if (matches[3] === '0') { + parentSampled = false; + } + + return { + traceId: matches[1], + parentSampled, + parentSpanId: matches[2], + }; +} + +export { TRACEPARENT_REGEXP, extractTraceparentData }; +//# sourceMappingURL=tracing.js.map |
