1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var browser_core_1 = require("@datadog/browser-core");
|
4 | exports.LOGGER_SESSION_KEY = 'logs';
|
5 | var LoggerTrackingType;
|
6 | (function (LoggerTrackingType) {
|
7 | LoggerTrackingType["NOT_TRACKED"] = "0";
|
8 | LoggerTrackingType["TRACKED"] = "1";
|
9 | })(LoggerTrackingType = exports.LoggerTrackingType || (exports.LoggerTrackingType = {}));
|
10 | function startLoggerSession(configuration, areCookieAuthorized) {
|
11 | if (!areCookieAuthorized) {
|
12 | var isTracked_1 = computeTrackingType(configuration) === LoggerTrackingType.TRACKED;
|
13 | return {
|
14 | getId: function () { return undefined; },
|
15 | isTracked: function () { return isTracked_1; },
|
16 | };
|
17 | }
|
18 | var session = browser_core_1.startSessionManagement(exports.LOGGER_SESSION_KEY, function (rawTrackingType) {
|
19 | return computeSessionState(configuration, rawTrackingType);
|
20 | });
|
21 | return {
|
22 | getId: session.getId,
|
23 | isTracked: function () { return session.getTrackingType() === LoggerTrackingType.TRACKED; },
|
24 | };
|
25 | }
|
26 | exports.startLoggerSession = startLoggerSession;
|
27 | function computeTrackingType(configuration) {
|
28 | if (!browser_core_1.performDraw(configuration.sampleRate)) {
|
29 | return LoggerTrackingType.NOT_TRACKED;
|
30 | }
|
31 | return LoggerTrackingType.TRACKED;
|
32 | }
|
33 | function computeSessionState(configuration, rawSessionType) {
|
34 | var trackingType = hasValidLoggerSession(rawSessionType) ? rawSessionType : computeTrackingType(configuration);
|
35 | return {
|
36 | trackingType: trackingType,
|
37 | isTracked: trackingType === LoggerTrackingType.TRACKED,
|
38 | };
|
39 | }
|
40 | function hasValidLoggerSession(trackingType) {
|
41 | return trackingType === LoggerTrackingType.NOT_TRACKED || trackingType === LoggerTrackingType.TRACKED;
|
42 | }
|
43 |
|
\ | No newline at end of file |