UNPKG

@dash0/sdk-web

Version:

Dash0's Web SDK to collect telemetry from end-users' web browsers

29 lines (28 loc) 813 B
import { perf } from "./globals"; export function now() { return new Date().getTime(); } export function nowNanos() { const timeOrigin = getTimeOrigin(); if (timeOrigin) { return String((perf.now() + timeOrigin) * 1000000); } return toNanosTs(new Date()); } export function toNanosTs(time) { if (typeof time === "object") { return toNanosTs(time.getTime()); } // We don't multiply, because we want to keep number precision return String(time) + "000000"; } export function getTimeOrigin() { let timeOrigin = perf?.timeOrigin; if (typeof timeOrigin !== "number") { timeOrigin = perf?.timing?.fetchStart; } return timeOrigin; } export function domHRTimestampToNanos(ts) { return String(Math.round((ts + getTimeOrigin()) * 1000000)); }