summaryrefslogtreecommitdiff
path: root/shared/logger/node_modules/@sentry/utils/esm/tracing.js
diff options
context:
space:
mode:
Diffstat (limited to 'shared/logger/node_modules/@sentry/utils/esm/tracing.js')
-rw-r--r--shared/logger/node_modules/@sentry/utils/esm/tracing.js39
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