@embrace-io/web-sdk
Version:
27 lines (26 loc) • 1.1 kB
JavaScript
import "./enums/EventNames.js";
import { PerformanceTimingNames, hasKey } from "@opentelemetry/sdk-trace-web";
//#region src/instrumentations/document-load/DocumentLoadInstrumentation/utils.ts
const getPerformanceNavigationEntries = () => {
const entries = {};
const performanceNavigationTiming = window.performance.getEntriesByType("navigation")[0];
Object.values(PerformanceTimingNames).forEach((key) => {
if (hasKey(performanceNavigationTiming, key)) {
const value = performanceNavigationTiming[key];
if (typeof value === "number") entries[key] = value;
}
});
return entries;
};
const performancePaintNames = {
"first-paint": "firstPaint",
"first-contentful-paint": "firstContentfulPaint"
};
const addSpanPerformancePaintEvents = (span, perf) => {
window.performance.getEntriesByType("paint").forEach(({ name, startTime }) => {
if (hasKey(performancePaintNames, name)) span.addEvent(performancePaintNames[name], perf.epochMillisFromOrigin(startTime));
});
};
//#endregion
export { addSpanPerformancePaintEvents, getPerformanceNavigationEntries };
//# sourceMappingURL=utils.js.map