@dash0/sdk-web
Version:
Dash0's Web SDK to collect telemetry from end-users' web browsers
30 lines (29 loc) • 1.2 kB
JavaScript
import { vars } from "../vars";
import { addAttribute, removeAttribute } from "../utils/otel";
import { USER_EMAIL, USER_FULL_NAME, USER_HASH, USER_ID, USER_NAME, USER_ROLES } from "../semantic-conventions";
export function identify(id, opts) {
removeAttribute(vars.signalAttributes, USER_ID);
if (id != null) {
addAttribute(vars.signalAttributes, USER_ID, id);
}
removeAttribute(vars.signalAttributes, USER_NAME);
if (opts?.name != null) {
addAttribute(vars.signalAttributes, USER_NAME, opts.name);
}
removeAttribute(vars.signalAttributes, USER_FULL_NAME);
if (opts?.fullName != null) {
addAttribute(vars.signalAttributes, USER_FULL_NAME, opts.fullName);
}
removeAttribute(vars.signalAttributes, USER_EMAIL);
if (opts?.email != null) {
addAttribute(vars.signalAttributes, USER_EMAIL, opts.email);
}
removeAttribute(vars.signalAttributes, USER_HASH);
if (opts?.hash != null) {
addAttribute(vars.signalAttributes, USER_HASH, opts.hash);
}
removeAttribute(vars.signalAttributes, USER_ROLES);
if (opts?.roles != null) {
addAttribute(vars.signalAttributes, USER_ROLES, opts.roles);
}
}