@embrace-io/web-sdk
Version:
29 lines (28 loc) • 1.35 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
require("./enums/EventNames.cjs");
let _opentelemetry_sdk_trace_web = require("@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(_opentelemetry_sdk_trace_web.PerformanceTimingNames).forEach((key) => {
if ((0, _opentelemetry_sdk_trace_web.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 ((0, _opentelemetry_sdk_trace_web.hasKey)(performancePaintNames, name)) span.addEvent(performancePaintNames[name], perf.epochMillisFromOrigin(startTime));
});
};
//#endregion
exports.addSpanPerformancePaintEvents = addSpanPerformancePaintEvents;
exports.getPerformanceNavigationEntries = getPerformanceNavigationEntries;
//# sourceMappingURL=utils.cjs.map