@embrace-io/web-sdk
Version:
1 lines • 1.59 kB
Source Map (JSON)
{"version":3,"file":"BrowserSpanProcessor.cjs","names":["KEY_BROWSER_URL_FULL"],"sources":["../../../src/processors/BrowserSpanProcessor/BrowserSpanProcessor.ts"],"sourcesContent":["import type { Span, SpanProcessor } from '@opentelemetry/sdk-trace';\nimport type { URLDocument } from '../../common/index.ts';\nimport { KEY_BROWSER_URL_FULL } from '../../constants/index.ts';\nimport type { BrowserSpanProcessorArgs } from './types.ts';\n\n/**\n * BrowserSpanProcessor sets the browser.url.full attribute on all spans.\n */\nexport class BrowserSpanProcessor implements SpanProcessor {\n private readonly _urlDocument: URLDocument;\n\n public constructor({\n urlDocument = window.document,\n }: BrowserSpanProcessorArgs = {}) {\n this._urlDocument = urlDocument;\n }\n\n public forceFlush(): Promise<void> {\n return Promise.resolve(undefined);\n }\n\n public onEnding(span: Span): void {\n if (!span.attributes[KEY_BROWSER_URL_FULL]) {\n span.attributes[KEY_BROWSER_URL_FULL] = this._urlDocument.URL;\n }\n }\n\n public onStart(this: void): void {\n // do nothing.\n }\n\n public onEnd(this: void): void {\n // do nothing.\n }\n\n public shutdown(): Promise<void> {\n return Promise.resolve(undefined);\n }\n}\n"],"mappings":";;;;;;AAQA,IAAa,uBAAb,MAA2D;CACzD;CAEA,YAAmB,EACjB,cAAc,OAAO,aACO,CAAC,GAAG;EAChC,KAAK,eAAe;CACtB;CAEA,aAAmC;EACjC,OAAO,QAAQ,QAAQ,KAAA,CAAS;CAClC;CAEA,SAAgB,MAAkB;EAChC,IAAI,CAAC,KAAK,WAAA,qBACR,KAAK,WAAWA,6BAAAA,wBAAwB,KAAK,aAAa;CAE9D;CAEA,UAAiC,CAEjC;CAEA,QAA+B,CAE/B;CAEA,WAAiC;EAC/B,OAAO,QAAQ,QAAQ,KAAA,CAAS;CAClC;AACF"}