@sentry/core
Version:
Base implementation for all Sentry JavaScript SDKs
43 lines (41 loc) • 1.53 kB
JavaScript
const sessionToSessionData = /* @__PURE__ */ new Map();
const statelessSessionData = /* @__PURE__ */ new WeakMap();
function getSessionData(transport) {
const sessionId = transport.sessionId;
if (sessionId) {
return sessionToSessionData.get(sessionId);
}
return statelessSessionData.get(transport);
}
function setSessionData(transport, data) {
const sessionId = transport.sessionId;
if (sessionId) {
sessionToSessionData.set(sessionId, data);
} else {
statelessSessionData.set(transport, data);
}
}
function storeSessionDataForTransport(transport, sessionData) {
setSessionData(transport, sessionData);
}
function updateSessionDataForTransport(transport, partialSessionData) {
const existingData = getSessionData(transport) || {};
setSessionData(transport, { ...existingData, ...partialSessionData });
}
function getClientInfoForTransport(transport) {
return getSessionData(transport)?.clientInfo;
}
function getProtocolVersionForTransport(transport) {
return getSessionData(transport)?.protocolVersion;
}
function getSessionDataForTransport(transport) {
return getSessionData(transport);
}
function cleanupSessionDataForTransport(transport) {
const sessionId = transport.sessionId;
if (sessionId) {
sessionToSessionData.delete(sessionId);
}
}
export { cleanupSessionDataForTransport, getClientInfoForTransport, getProtocolVersionForTransport, getSessionDataForTransport, storeSessionDataForTransport, updateSessionDataForTransport };
//# sourceMappingURL=sessionManagement.js.map