@datadog/browser-logs
Version:
38 lines • 1.76 kB
JavaScript
import { Observable, performDraw, SESSION_NOT_TRACKED, startSessionManager } from '@datadog/browser-core';
export const LOGS_SESSION_KEY = 'logs';
export function startLogsSessionManager(configuration, trackingConsentState) {
const sessionManager = startSessionManager(configuration, 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,
};
}
export function startLogsSessionManagerStub(configuration) {
const isTracked = computeTrackingType(configuration) === "1" /* LoggerTrackingType.TRACKED */;
const session = isTracked ? {} : undefined;
return {
findTrackedSession: () => session,
expireObservable: new Observable(),
};
}
function computeTrackingType(configuration, rawTrackingType) {
if (hasValidLoggerSession(rawTrackingType)) {
return rawTrackingType;
}
if (!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