@zendesk/retrace
Version:
define and capture Product Operation Traces along with computed metrics with an optional friendly React beacon API
55 lines • 1.94 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createMockSpanAndAnnotation = exports.createMockSpan = exports.createAnnotation = exports.createTimestamp = void 0;
const EPOCH_START = 1_000;
const createTimestamp = (now) => ({
epoch: EPOCH_START + now,
now,
});
exports.createTimestamp = createTimestamp;
const createAnnotation = (span, traceStartTime, partial = {}) => ({
id: 'test-id',
operationRelativeStartTime: span.startTime.now - traceStartTime.now,
operationRelativeEndTime: span.startTime.now + span.duration - traceStartTime.now,
occurrence: 1,
recordedInState: 'active',
labels: [],
...partial,
});
exports.createAnnotation = createAnnotation;
const createMockSpan = (startTimeNow, partial) => (partial.type === 'component-render'
? {
name: 'test-component',
type: 'component-render',
relatedTo: {},
startTime: (0, exports.createTimestamp)(startTimeNow),
duration: 100,
attributes: {},
isIdle: true,
renderCount: 1,
renderedOutput: 'content',
...partial,
}
: {
name: 'test-span',
type: 'mark',
startTime: (0, exports.createTimestamp)(startTimeNow),
duration: 100,
attributes: {},
...partial,
});
exports.createMockSpan = createMockSpan;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const createMockSpanAndAnnotation = (startTimeNow, spanPartial = {}, annotationPartial = {}) => {
const span = (0, exports.createMockSpan)(startTimeNow, spanPartial);
span.id = `test-${startTimeNow}`;
return [
span.id,
{
span,
annotation: (0, exports.createAnnotation)(span, (0, exports.createTimestamp)(0), annotationPartial),
},
];
};
exports.createMockSpanAndAnnotation = createMockSpanAndAnnotation;
//# sourceMappingURL=createMockFactory.js.map