@dash0/sdk-web
Version:
Dash0's Web SDK to collect telemetry from end-users' web browsers
29 lines (28 loc) • 813 B
JavaScript
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));
}