UNPKG

1.19 kBJavaScriptView Raw
1/** This function adds duration since Sentry was initialized till the time event was sent */
2class SessionTiming {constructor() { SessionTiming.prototype.__init.call(this);SessionTiming.prototype.__init2.call(this); }
3 /**
4 * @inheritDoc
5 */
6 static __initStatic() {this.id = 'SessionTiming';}
7
8 /**
9 * @inheritDoc
10 */
11 __init() {this.name = SessionTiming.id;}
12
13 /** Exact time Client was initialized expressed in milliseconds since Unix Epoch. */
14 __init2() {this._startTime = Date.now();}
15
16 /**
17 * @inheritDoc
18 */
19 setupOnce(addGlobalEventProcessor, getCurrentHub) {
20 addGlobalEventProcessor(event => {
21 const self = getCurrentHub().getIntegration(SessionTiming);
22 if (self) {
23 return self.process(event);
24 }
25 return event;
26 });
27 }
28
29 /**
30 * @inheritDoc
31 */
32 process(event) {
33 const now = Date.now();
34
35 return {
36 ...event,
37 extra: {
38 ...event.extra,
39 ['session:start']: this._startTime,
40 ['session:duration']: now - this._startTime,
41 ['session:end']: now,
42 },
43 };
44 }
45} SessionTiming.__initStatic();
46
47export { SessionTiming };
48//# sourceMappingURL=sessiontiming.js.map