@datadog/browser-logs
Version:
43 lines • 2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.LOGS_SESSION_KEY = void 0;
exports.startLogsSessionManager = startLogsSessionManager;
exports.startLogsSessionManagerStub = startLogsSessionManagerStub;
const browser_core_1 = require("@datadog/browser-core");
exports.LOGS_SESSION_KEY = 'logs';
function startLogsSessionManager(configuration, trackingConsentState) {
const sessionManager = (0, browser_core_1.startSessionManager)(configuration, exports.LOGS_SESSION_KEY, (rawTrackingType) => computeTrackingType(configuration, rawTrackingType), trackingConsentState);
return {
findTrackedSession: (startTime, options = { returnInactive: false }) => {
const session = sessionManager.findSession(startTime, options);
return session && session.trackingType === "1" /* LoggerTrackingType.TRACKED */
? {
id: session.id,
anonymousId: session.anonymousId,
}
: undefined;
},
expireObservable: sessionManager.expireObservable,
};
}
function startLogsSessionManagerStub(configuration) {
const isTracked = computeTrackingType(configuration) === "1" /* LoggerTrackingType.TRACKED */;
const session = isTracked ? {} : undefined;
return {
findTrackedSession: () => session,
expireObservable: new browser_core_1.Observable(),
};
}
function computeTrackingType(configuration, rawTrackingType) {
if (hasValidLoggerSession(rawTrackingType)) {
return rawTrackingType;
}
if (!(0, browser_core_1.performDraw)(configuration.sessionSampleRate)) {
return "0" /* LoggerTrackingType.NOT_TRACKED */;
}
return "1" /* LoggerTrackingType.TRACKED */;
}
function hasValidLoggerSession(trackingType) {
return trackingType === "0" /* LoggerTrackingType.NOT_TRACKED */ || trackingType === "1" /* LoggerTrackingType.TRACKED */;
}
//# sourceMappingURL=logsSessionManager.js.map