From 06e51ec0747b9398ef9aa062f0aeb71350e7c9c9 Mon Sep 17 00:00:00 2001 From: Katie Byers Date: Mon, 14 Sep 2020 17:16:58 -0700 Subject: [PATCH] consolidate utils --- packages/tracing/src/browser/backgroundtab.ts | 2 +- .../tracing/src/browser/browsertracing.ts | 3 +- packages/tracing/src/browser/metrics.ts | 2 +- packages/tracing/src/browser/request.ts | 2 +- packages/tracing/src/browser/utils.ts | 30 ------------------ packages/tracing/src/errors.ts | 2 +- packages/tracing/src/index.ts | 2 +- packages/tracing/src/utils.ts | 31 ++++++++++++++++++- .../test/browser/browsertracing.test.ts | 2 +- packages/tracing/test/span.test.ts | 3 +- 10 files changed, 39 insertions(+), 40 deletions(-) delete mode 100644 packages/tracing/src/browser/utils.ts diff --git a/packages/tracing/src/browser/backgroundtab.ts b/packages/tracing/src/browser/backgroundtab.ts index f0ce1f5446aa..b4fe490ab1b8 100644 --- a/packages/tracing/src/browser/backgroundtab.ts +++ b/packages/tracing/src/browser/backgroundtab.ts @@ -2,7 +2,7 @@ import { getGlobalObject, logger } from '@sentry/utils'; import { IdleTransaction } from '../idletransaction'; import { SpanStatus } from '../spanstatus'; -import { getActiveTransaction } from './utils'; +import { getActiveTransaction } from '../utils'; const global = getGlobalObject(); diff --git a/packages/tracing/src/browser/browsertracing.ts b/packages/tracing/src/browser/browsertracing.ts index 1edb81c98295..d55e4d818d3f 100644 --- a/packages/tracing/src/browser/browsertracing.ts +++ b/packages/tracing/src/browser/browsertracing.ts @@ -5,7 +5,7 @@ import { logger } from '@sentry/utils'; import { startIdleTransaction } from '../hubextensions'; import { DEFAULT_IDLE_TIMEOUT, IdleTransaction } from '../idletransaction'; import { SpanStatus } from '../spanstatus'; -import { extractTraceparentData } from '../utils'; +import { extractTraceparentData, secToMs } from '../utils'; import { registerBackgroundTabDetection } from './backgroundtab'; import { MetricsInstrumentation } from './metrics'; import { @@ -14,7 +14,6 @@ import { RequestInstrumentationOptions, } from './request'; import { defaultBeforeNavigate, defaultRoutingInstrumentation } from './router'; -import { secToMs } from './utils'; export const DEFAULT_MAX_TRANSACTION_DURATION_SECONDS = 600; diff --git a/packages/tracing/src/browser/metrics.ts b/packages/tracing/src/browser/metrics.ts index f2a0ee042fe1..c729248caf95 100644 --- a/packages/tracing/src/browser/metrics.ts +++ b/packages/tracing/src/browser/metrics.ts @@ -5,7 +5,7 @@ import { getGlobalObject, logger } from '@sentry/utils'; import { Span } from '../span'; import { Transaction } from '../transaction'; -import { msToSec } from './utils'; +import { msToSec } from '../utils'; const global = getGlobalObject(); diff --git a/packages/tracing/src/browser/request.ts b/packages/tracing/src/browser/request.ts index b942a2177e57..c2727c524584 100644 --- a/packages/tracing/src/browser/request.ts +++ b/packages/tracing/src/browser/request.ts @@ -1,7 +1,7 @@ import { addInstrumentationHandler, isInstanceOf, isMatchingPattern } from '@sentry/utils'; import { Span } from '../span'; -import { getActiveTransaction } from './utils'; +import { getActiveTransaction } from '../utils'; export const DEFAULT_TRACING_ORIGINS = ['localhost', /^\//]; diff --git a/packages/tracing/src/browser/utils.ts b/packages/tracing/src/browser/utils.ts deleted file mode 100644 index bda91de29c82..000000000000 --- a/packages/tracing/src/browser/utils.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { getCurrentHub, Hub } from '@sentry/hub'; -import { Transaction } from '@sentry/types'; - -/** Grabs active transaction off scope */ -export function getActiveTransaction(hub: Hub = getCurrentHub()): T | undefined { - if (hub) { - const scope = hub.getScope(); - if (scope) { - return scope.getTransaction() as T | undefined; - } - } - - return undefined; -} - -/** - * Converts from milliseconds to seconds - * @param time time in ms - */ -export function msToSec(time: number): number { - return time / 1000; -} - -/** - * Converts from seconds to milliseconds - * @param time time in seconds - */ -export function secToMs(time: number): number { - return time * 1000; -} diff --git a/packages/tracing/src/errors.ts b/packages/tracing/src/errors.ts index 9c37186b1f89..eb15d592cb7c 100644 --- a/packages/tracing/src/errors.ts +++ b/packages/tracing/src/errors.ts @@ -1,7 +1,7 @@ import { addInstrumentationHandler, logger } from '@sentry/utils'; -import { getActiveTransaction } from './browser/utils'; import { SpanStatus } from './spanstatus'; +import { getActiveTransaction } from './utils'; /** * Configures global error listeners diff --git a/packages/tracing/src/index.ts b/packages/tracing/src/index.ts index c779d122bf38..5036d26c2a0b 100644 --- a/packages/tracing/src/index.ts +++ b/packages/tracing/src/index.ts @@ -15,4 +15,4 @@ addExtensionMethods(); export { addExtensionMethods }; -export * from './utils'; +export { extractTraceparentData, getActiveTransaction, hasTracingEnabled, stripUrlQueryAndFragment } from './utils'; diff --git a/packages/tracing/src/utils.ts b/packages/tracing/src/utils.ts index de4f609de47d..aef4c0ffc705 100644 --- a/packages/tracing/src/utils.ts +++ b/packages/tracing/src/utils.ts @@ -1,4 +1,5 @@ -import { Options, TraceparentData } from '@sentry/types'; +import { getCurrentHub, Hub } from '@sentry/hub'; +import { Options, TraceparentData, Transaction } from '@sentry/types'; export const TRACEPARENT_REGEXP = new RegExp( '^[ \\t]*' + // whitespace @@ -42,5 +43,33 @@ export function extractTraceparentData(traceparent: string): TraceparentData | u return undefined; } +/** Grabs active transaction off scope */ +export function getActiveTransaction(hub: Hub = getCurrentHub()): T | undefined { + if (hub) { + const scope = hub.getScope(); + if (scope) { + return scope.getTransaction() as T | undefined; + } + } + + return undefined; +} + +/** + * Converts from milliseconds to seconds + * @param time time in ms + */ +export function msToSec(time: number): number { + return time / 1000; +} + +/** + * Converts from seconds to milliseconds + * @param time time in seconds + */ +export function secToMs(time: number): number { + return time * 1000; +} + // so it can be used in manual instrumentation without necessitating a hard dependency on @sentry/utils export { stripUrlQueryAndFragment } from '@sentry/utils'; diff --git a/packages/tracing/test/browser/browsertracing.test.ts b/packages/tracing/test/browser/browsertracing.test.ts index 0c77e137f494..fcdf23d41a9e 100644 --- a/packages/tracing/test/browser/browsertracing.test.ts +++ b/packages/tracing/test/browser/browsertracing.test.ts @@ -11,8 +11,8 @@ import { } from '../../src/browser/browsertracing'; import { defaultRequestInstrumentionOptions } from '../../src/browser/request'; import { defaultRoutingInstrumentation } from '../../src/browser/router'; -import { getActiveTransaction, secToMs } from '../../src/browser/utils'; import { DEFAULT_IDLE_TIMEOUT, IdleTransaction } from '../../src/idletransaction'; +import { getActiveTransaction, secToMs } from '../../src/utils'; let mockChangeHistory: ({ to, from }: { to: string; from?: string }) => void = () => undefined; diff --git a/packages/tracing/test/span.test.ts b/packages/tracing/test/span.test.ts index c8026974dc9d..b08a817340ce 100644 --- a/packages/tracing/test/span.test.ts +++ b/packages/tracing/test/span.test.ts @@ -1,7 +1,8 @@ import { BrowserClient } from '@sentry/browser'; import { Hub, Scope } from '@sentry/hub'; -import { Span, SpanStatus, TRACEPARENT_REGEXP, Transaction } from '../src'; +import { Span, SpanStatus, Transaction } from '../src'; +import { TRACEPARENT_REGEXP } from '../src/utils'; describe('Span', () => { let hub: Hub;