MCPcopy Index your code
hub / github.com/getsentry/sentry-javascript / updateSession

Function updateSession

packages/core/src/session.ts:48–107  ·  view source on GitHub ↗
(session: Session, context: SessionContext = {})

Source from the content-addressed store, hash-verified

46 */
47// eslint-disable-next-line complexity
48export function updateSession(session: Session, context: SessionContext = {}): void {
49 if (context.user) {
50 if (!session.ipAddress && context.user.ip_address) {
51 session.ipAddress = context.user.ip_address;
52 }
53
54 if (!session.did && !context.did) {
55 session.did = context.user.id || context.user.email || context.user.username;
56 }
57 }
58
59 session.timestamp = context.timestamp || timestampInSeconds();
60
61 if (context.abnormal_mechanism) {
62 session.abnormal_mechanism = context.abnormal_mechanism;
63 }
64
65 if (context.ignoreDuration) {
66 session.ignoreDuration = context.ignoreDuration;
67 }
68 if (context.sid) {
69 // Good enough uuid validation. — Kamil
70 session.sid = context.sid.length === 32 ? context.sid : uuid4();
71 }
72 if (context.init !== undefined) {
73 session.init = context.init;
74 }
75 if (!session.did && context.did) {
76 session.did = `${context.did}`;
77 }
78 if (typeof context.started === 'number') {
79 session.started = context.started;
80 }
81 if (session.ignoreDuration) {
82 session.duration = undefined;
83 } else if (typeof context.duration === 'number') {
84 session.duration = context.duration;
85 } else {
86 const duration = session.timestamp - session.started;
87 session.duration = duration >= 0 ? duration : 0;
88 }
89 if (context.release) {
90 session.release = context.release;
91 }
92 if (context.environment) {
93 session.environment = context.environment;
94 }
95 if (!session.ipAddress && context.ipAddress) {
96 session.ipAddress = context.ipAddress;
97 }
98 if (!session.userAgent && context.userAgent) {
99 session.userAgent = context.userAgent;
100 }
101 if (typeof context.errors === 'number') {
102 session.errors = context.errors;
103 }
104 if (context.status) {
105 session.status = context.status;

Callers 9

session.test.tsFile · 0.90
captureSessionFunction · 0.90
_updateSessionFromEventFunction · 0.90
setUserMethod · 0.90
startSessionFunction · 0.90
sendAbnormalSessionFunction · 0.90
sendAbnormalSessionFunction · 0.90
makeSessionFunction · 0.85
closeSessionFunction · 0.85

Calls 2

timestampInSecondsFunction · 0.90
uuid4Function · 0.90

Tested by

no test coverage detected