UNPKG

@embrace-io/web-sdk

Version:
73 lines (72 loc) 1.97 kB
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const require_constants_attributes = require("../../constants/attributes.cjs"); //#region src/managers/EmbraceTraceManager/EmbraceExtendedSpan.ts /** * EmbraceSpan for the most part simply delegates to the underlying Span it receives on initialization so * that it satisfies the Span interface. In addition, it gives us a spot where we can implement helpers that are part * of the EmbraceSpan interface. */ var EmbraceExtendedSpan = class { _span; constructor(span) { this._span = span; } /** * Expose attributes by extending OpenTelemetry's ReadableSpan. */ get attributes() { return this._span.attributes; } addEvent(name, attributesOrStartTime, startTime) { this._span.addEvent(name, attributesOrStartTime, startTime); return this; } addLink(link) { this._span.addLink(link); return this; } addLinks(links) { this._span.addLinks(links); return this; } end(endTime) { this._span.end(endTime); } isRecording() { return this._span.isRecording(); } recordException(exception, time) { this._span.recordException(exception, time); } setAttribute(key, value) { this._span.setAttribute(key, value); return this; } setAttributes(attributes) { this._span.setAttributes(attributes); return this; } removeAttribute(key) { const { [key]: _, ...attributes } = this._span.attributes; this._span.attributes = attributes; return this; } setStatus(status) { this._span.setStatus(status); return this; } spanContext() { return this._span.spanContext(); } updateName(name) { this._span.updateName(name); return this; } fail(options = { code: "failure" }) { if (options.code) this._span.setAttribute(require_constants_attributes.KEY_EMB_ERROR_CODE, options.code.toUpperCase()); this._span.end(options.endTime); } }; //#endregion exports.EmbraceExtendedSpan = EmbraceExtendedSpan; //# sourceMappingURL=EmbraceExtendedSpan.cjs.map